Integrate accepted 100px sprites into the local Bevy viewer without LFS #59

Closed
opened 2026-08-06 08:14:14 +00:00 by coilyco-ops · 0 comments
Member

Outcome

Promote the seven accepted 100 by 100 Factory Game sprites into the repository and use them in the local native Bevy viewer. Keep these small runtime sprites in ordinary Git, preserve the existing colored-shape fallbacks, and leave browser packaging and deployment for a later slice.

The accepted source files currently live under the established local AOSX output directory at ~/Desktop/aosx-outputs/factory-game/.

Accepted assets

Promote these files into stable runtime names:

  • ground.png
  • road-straight-ns.png
  • truck.png
  • iron-ore-deposit-v1.png as iron-ore-deposit.png
  • foundry-v1.png as foundry.png
  • iron-ore-v1.png as iron-ore.png
  • iron-bars-v1.png as iron-bars.png

All seven normalized files are 100 by 100 RGBA PNGs and total about 88 KiB. Do not commit ComfyUI source renders, masks, structure inputs, rejected variants, or review sheets.

Repository evidence

  • The current .gitattributes applies Git LFS to every PNG.
  • Closed issue #4 established LFS for the retained bulk Unity image library.
  • The current Bevy viewer uses DefaultPlugins but renders the world with Sprite::from_color. It has no runtime image-handle resource yet.
  • ward exec shell-run launches the native viewer from the repository root, so a repository-root assets/ directory matches Bevy's default local asset root.
  • Trunk currently has no asset copy rule, and the Docker builder copies crates/ only. Browser asset packaging is not required in this local-first issue.

Runtime layout

Use a repo-relative layout such as:

assets/factory/
├── terrain/ground.png
├── logistics/road-straight-ns.png
├── vehicles/truck.png
├── resources/iron-ore-deposit.png
├── machines/foundry.png
└── items/
    ├── iron-ore.png
    └── iron-bars.png

Do not load directly from the Desktop, add an operator-specific path, use a symlink, or embed the PNGs with include_bytes!.

Implementation requirements

  • Add a narrow .gitattributes exception after the existing image rules so /assets/factory/**/*.png does not use the LFS filter, diff driver, or merge driver and remains binary.
  • Leave the retained Assets/ tree, its LFS objects, CI LFS checkout, and prior history unchanged.
  • Load stable image handles through Bevy AssetServer in a typed resource such as FactoryArt.
  • Use the accepted ground, straight road, truck, iron deposit, iron-bars foundry, ore icon, and bars icon where the current snapshot supplies the matching identity.
  • Preserve authoritative simulation state, hauler interpolation, labels, gauges, cargo state, route activity, and other frame effects.
  • Preserve colored primitive fallbacks for asset classes and road topologies that do not have accepted art yet.
  • Rotate the straight road for east-west use only when topology supports it. Keep corners and junctions on their fallback presentation.
  • Keep the Wasm surface compiling and preserve its current behavior. Do not add Trunk, Docker, deployment, or live rollout changes in this issue.
  • Update docs/FEATURES.md for the new local runtime-art capability.

Acceptance criteria

  • The seven promoted assets have stable paths and names under assets/factory/.
  • git check-attr filter reports the LFS filter as unset or unspecified for every promoted PNG.
  • git lfs ls-files does not list any promoted runtime sprite.
  • Existing retained Unity images remain LFS-managed.
  • ward exec shell-run displays the accepted art in the native viewer.
  • Missing or unsupported art continues to use the existing colored fallback.
  • Truck movement remains smoothly interpolated.
  • The starter iron loop identities read as deposit, hauler, foundry, ore, and bars at gameplay scale.
  • ward exec test passes.
  • ward exec shell-build-web still compiles without changing browser packaging or deployment.
  • docs/FEATURES.md describes the local runtime-art boundary.
  • A follow-up issue records Trunk, Docker, and browser asset packaging if that work remains deferred.

Out of scope

  • Migrating or rewriting the retained Unity LFS library
  • Committing generative sources or review artifacts
  • Road corners, junctions, and the wider material catalog
  • Truck animation frames or state-light animation
  • Browser asset publication, container packaging, deployment, or live verification
## Outcome Promote the seven accepted 100 by 100 Factory Game sprites into the repository and use them in the local native Bevy viewer. Keep these small runtime sprites in ordinary Git, preserve the existing colored-shape fallbacks, and leave browser packaging and deployment for a later slice. The accepted source files currently live under the established local AOSX output directory at `~/Desktop/aosx-outputs/factory-game/`. ## Accepted assets Promote these files into stable runtime names: * `ground.png` * `road-straight-ns.png` * `truck.png` * `iron-ore-deposit-v1.png` as `iron-ore-deposit.png` * `foundry-v1.png` as `foundry.png` * `iron-ore-v1.png` as `iron-ore.png` * `iron-bars-v1.png` as `iron-bars.png` All seven normalized files are 100 by 100 RGBA PNGs and total about 88 KiB. Do not commit ComfyUI source renders, masks, structure inputs, rejected variants, or review sheets. ## Repository evidence * The current `.gitattributes` applies Git LFS to every PNG. * Closed issue #4 established LFS for the retained bulk Unity image library. * The current Bevy viewer uses `DefaultPlugins` but renders the world with `Sprite::from_color`. It has no runtime image-handle resource yet. * `ward exec shell-run` launches the native viewer from the repository root, so a repository-root `assets/` directory matches Bevy's default local asset root. * Trunk currently has no asset copy rule, and the Docker builder copies `crates/` only. Browser asset packaging is not required in this local-first issue. ## Runtime layout Use a repo-relative layout such as: ```text assets/factory/ ├── terrain/ground.png ├── logistics/road-straight-ns.png ├── vehicles/truck.png ├── resources/iron-ore-deposit.png ├── machines/foundry.png └── items/ ├── iron-ore.png └── iron-bars.png ``` Do not load directly from the Desktop, add an operator-specific path, use a symlink, or embed the PNGs with `include_bytes!`. ## Implementation requirements * Add a narrow `.gitattributes` exception after the existing image rules so `/assets/factory/**/*.png` does not use the LFS filter, diff driver, or merge driver and remains binary. * Leave the retained `Assets/` tree, its LFS objects, CI LFS checkout, and prior history unchanged. * Load stable image handles through Bevy `AssetServer` in a typed resource such as `FactoryArt`. * Use the accepted ground, straight road, truck, iron deposit, iron-bars foundry, ore icon, and bars icon where the current snapshot supplies the matching identity. * Preserve authoritative simulation state, hauler interpolation, labels, gauges, cargo state, route activity, and other frame effects. * Preserve colored primitive fallbacks for asset classes and road topologies that do not have accepted art yet. * Rotate the straight road for east-west use only when topology supports it. Keep corners and junctions on their fallback presentation. * Keep the Wasm surface compiling and preserve its current behavior. Do not add Trunk, Docker, deployment, or live rollout changes in this issue. * Update `docs/FEATURES.md` for the new local runtime-art capability. ## Acceptance criteria * [ ] The seven promoted assets have stable paths and names under `assets/factory/`. * [ ] `git check-attr filter` reports the LFS filter as unset or unspecified for every promoted PNG. * [ ] `git lfs ls-files` does not list any promoted runtime sprite. * [ ] Existing retained Unity images remain LFS-managed. * [ ] `ward exec shell-run` displays the accepted art in the native viewer. * [ ] Missing or unsupported art continues to use the existing colored fallback. * [ ] Truck movement remains smoothly interpolated. * [ ] The starter iron loop identities read as deposit, hauler, foundry, ore, and bars at gameplay scale. * [ ] `ward exec test` passes. * [ ] `ward exec shell-build-web` still compiles without changing browser packaging or deployment. * [ ] `docs/FEATURES.md` describes the local runtime-art boundary. * [ ] A follow-up issue records Trunk, Docker, and browser asset packaging if that work remains deferred. ## Out of scope * Migrating or rewriting the retained Unity LFS library * Committing generative sources or review artifacts * Road corners, junctions, and the wider material catalog * Truck animation frames or state-light animation * Browser asset publication, container packaging, deployment, or live verification
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/factory-game-v3#59
No description provided.