How koz39/icon-generator works
1. What this repository is
- This is a Unity Editor tool called Icon Generator.
- Its primary purpose is to generate icon images from a selected 3D source object, especially for child objects under a parent source object.
- It is not a general application backend/frontend split; it is a Unity extension plus a small companion website for distribution.
2. Core architecture: Unity editor extension
- The main product lives in the Unity project/package side of the repo.
- The README indicates the tool is accessed from the Unity top menu: “Tools → 3D Obj to Icon”.
- That means the main subsystem is an editor-time workflow rather than runtime gameplay code.
3. Likely functional flow inside Unity
- A user selects a source object in the Unity scene or hierarchy.
- The tool generates icon output for that object and optionally its children.
- The generation process includes:
- choosing the source object,
- configuring output directory,
- setting icon size,
- choosing a camera capture direction or custom angle,
- then triggering generation.
- The data flow is therefore: scene object input → editor tool configuration → camera/render capture → saved icon files.
4. Configuration and output boundary
- The README explicitly calls out output directory and size settings as configurable parameters.
- This suggests the tool has a clear boundary between:
- scene/editor state (selected object, camera angle),
- file system output (generated icon images).
- For an architecture diagram, treat file writing as an external boundary from the Unity editor logic.
5. Package and asset layout
- Assets/ exists but contains only .gitkeep, suggesting the repo may rely heavily on packaged content rather than loose project assets.
- Packages/ is present, which is significant in Unity because it usually contains package-related metadata or embedded packages.
- This points to a package-oriented Unity distribution model rather than a large standalone game project.
6. Distribution and installation path
- The README offers two installation paths:
- Add to VCC via the hosted website,
- or import the included .unitypackage.
- That means the repo supports both:
- a package catalog / VCC-style distribution surface,
- and a manual Unity package import path.
- Architecturally, the project is split between the editor tool itself and a distribution mechanism.
7. Companion website
- The Website/ folder contains index.html, app.js, and styles.css.
- This is a small static site, likely used to present the package for “Add to VCC” and/or installation instructions.
- It appears to be a deployment surface for GitHub Pages, not a full web application backend.
8. Website role in the system
- The website acts as an entry point that points users into the Unity/VCC install flow.
- It is an external-facing artifact separate from the Unity editor tool itself.
- For a diagram, place it as a distribution/UI layer connected to the GitHub Pages hosting boundary.
9. CI/CD and release automation
- The .github/workflows/ directory contains:
- build-listing.yml
- release.yml
- This indicates automated repository operations for:
- building or updating the website/package listing,
- producing releases.
- GitHub Actions is therefore part of the delivery pipeline, not the runtime product.
10. Release packaging boundary
- The presence of a release.yml workflow strongly suggests the repo produces release artifacts such as:
- a Unity package,
- a GitHub release asset,
- or a website update for installation.
- The release pipeline likely bridges the Unity tool source and the end-user distribution formats.
11. Documentation and localization
- The repo includes README.md plus localized versions in Korean and Japanese.
- That means documentation is treated as part of the user-facing architecture, not just developer notes.
- This is relevant because the tool is likely intended for a multi-language creator audience.
12. External platform dependencies
- Unity 2022.3.22f1 is a hard requirement and is the primary runtime/editor environment.
- GitHub Pages appears to host the install page.
- GitHub Actions automates build/release steps.
- The README references VCC as the installation path, so the tool is integrated into the VRChat creator ecosystem.
13. Project shape to diagram
- A useful architecture diagram would have three main parts:
- Unity Editor Tool: icon generation logic, object selection, camera/capture configuration, file output.
- Distribution Layer: static website and package listing for installation.
- Automation Layer: GitHub workflows for builds and releases.
- The main data flow is from user-selected Unity objects to generated icon files, while the delivery flow is from repo source to website/release artifacts.
14. Notable absence
- There is no sign of a server, database, or runtime network API.
- The system is mainly an editor-side asset generation utility with a lightweight web presence for distribution.
Main entry points: Website Website · README.md README · build-listing.yml Build listing · release.yml Release
Components 17
Unity tool
Editor-side icon generation and package content.
- Packages · Unity package-oriented project content.
Packages - Assets · Minimal Unity project assets placeholder.
Assets - Icon tool · Generate icons from selected 3D objects in the Unity Editor.
- Source select · Select a source object or child hierarchy to iconize.
- Tool config · Output directory, icon size, and capture angle settings.
- Capture · Camera-driven snapshot step that renders icon images.
- Icon files · Saved generated icon images on disk.
Distribution
Static website and install surface for users.
- Website · Companion installation and listing site.
Website - Home page · Primary landing page for installation and listing.
Website/index.html - Site script · Client-side behavior for the companion site.
Website/app.js - Site styles · Visual styling for the companion site.
Website/styles.css
Automation
GitHub Actions for listing and release delivery.
- Build listing · Workflow that builds or updates the package listing site.
.github/workflows/build-listing.yml - Release · Workflow that produces release artifacts.
.github/workflows/release.yml
Connections 18
- Source select → Icon tool: selects · User picks the source object for processing.
- Tool config → Icon tool: configures · Settings drive how icons are generated.
- Icon tool → Capture: renders · The editor workflow captures the object through a camera/render step.
- Capture → Icon files: writes · Rendered icons are written to the configured output directory.
- Packages → Icon tool: contains · Package-oriented Unity content holds the editor tool implementation.
- Assets → Icon tool: supports · Project assets support the editor extension.
- Website → Home page: hosts · The static site is composed of the landing page and assets.
- Website → Site script: hosts · Client-side behavior for the site.
- Website → Site styles: hosts · Presentation layer for the companion site.
- Home page → Build listing: published by · The listing page is updated through automation.
- Build listing → Website: updates · Workflow refreshes the hosted installation listing.
- Release → Packages: packages · Release automation produces distributable Unity package artifacts.
- Release → Changelog: tags · Release workflow aligns with versioned release notes.
- README → Icon tool: documents · Primary docs explain the Unity editor workflow.
- README → Website: links · Docs point users to the installation surface.
- README JA → Icon tool: documents · Japanese documentation mirrors the main usage story.
- README KO → Icon tool: documents · Korean documentation mirrors the main usage story.
- README → Build listing: describes · Docs describe the VCC-style installation flow.