Status: graybox art contract for the current vertical slice. This is not a final art bible. The goal is to replace generic cubes with readable low-cost machine silhouettes while keeping strong fit with the current simulation and slicing tools.
Author blockout assets only for the current playable set:
frame_blockwirebeltlift_wheeldynamoextractorcrushermixerpressfabricator
Do not spend time on:
- final textures
- hero props
- high-frequency detail
- rigging
- particles
- decorative environment dressing
1grid cell =1m- World axes:
+X = east-Z = north+Y = up
- Canonical authored orientation is
north-facing - Runtime rotates assets in
90-degreehorizontal steps - Most slice machines occupy
1 x 1 x 1 lift_wheelcurrently occupies1 x 2 x 1
- Put the object origin at the
bottom centerof the machine origin cell - Rest the asset on
Y = 0 - Do not leave a visible hover gap under the base
- Keep the visible body inside the occupied footprint whenever possible
- Small overhang is acceptable if it does not obscure neighboring cells during slicing
- Avoid thin shapes that disappear from an angled top-down camera
Recommended visible bounds:
- Single-cell machine body: roughly
0.78mto0.94mwide/deep - Single-cell machine height: roughly
0.7mto1.05m - Infrastructure pieces can be lower profile if they remain readable
- Prefer
1material, maximum2materials per asset - No baked lighting
- No emissive-heavy treatment in the first pass
- Keep surfaces broad and simple enough for flat or lightly varied materials
- Author for category color tinting, not bespoke texture storytelling
Readability matters more than realism.
Every asset should make these things obvious:
- where the machine faces
- where item output is likely to leave
- where power connects if the machine uses power
- where the machine contacts the floor/support
- whether the object is infrastructure, processing, power, or utility
Preferred visual language:
- processing machines: enclosed bodies, hoppers, chutes, vats, or presses
- transport: lighter, more linear silhouettes
- power: heavier, generator-like forms with coils, flywheels, or terminals
- utility: workshop or assembly silhouettes
- structure: neutral support geometry
The game already draws overlay markers, so the model does not need literal sockets everywhere. It should still support the port grammar.
Use shape cues for:
- item input: hopper, tray, chute mouth, intake frame
- item output: spout, chute, nozzle, ejector side
- power input: terminal, insulated coupling, connector plate
- power output: generator face or terminal ring
Do not encode gameplay with tiny decals alone. The silhouette should do most of the work.
frame_block
- Neutral support piece
- Must tile cleanly
- Should read as structural, not decorative masonry
wire
- Low-profile connector
- No strong front/back
- Can be authored as a grounded cable tray, insulated bar, or conduit node
belt
- Must read as directed transport
- Output/front should be much clearer than intake sides
- Intake from back or side is allowed by gameplay, so do not make the side faces look forbidden
lift_wheel
- One cell wide, two cells tall
- Clear vertical motion silhouette
- Bottom intake and top output should be readable
dynamo
- Distinct from all processors
- Power identity first
- All four horizontal sides are power output faces in gameplay
extractor
- Should look anchored to a node
- Front item output and rear power input need clear separation
crusher
- Feed in, process, eject out
- One power side
- Heavier, more blunt silhouette than the mixer
mixer
- Two different side inputs matter
- Should visually support the idea of combining two feeds into one chamber
- Output and power side should not be ambiguous
press
- Strong front-to-back material path
- Should feel like compression or stamping, not generic processing
fabricator
- Utility machine, not part of the core chemistry chain
- Should feel like a workshop/fabrication station that consumes plates and credits build inventory
- Export as
glb - One file per machine
- Recommended filename:
<machine_id>.glb - Keep transforms applied before export
- Keep the authored pivot/origin intact
- Do not include cameras or lights
Recommended target path once runtime asset mapping is added:
assets/models/<machine_id>.glb
Current content wiring:
- machine defs can now point at blockouts with
render.model: "models/<machine_id>.glb" - runtime rotates the imported scene from the authored north-facing orientation
render.model_scaleandrender.model_offsetexist for minor correction, but Blender pivots should stay the primary fix- if a model is missing, not loaded yet, or hidden by readability rules, the client falls back to the built-in cube body automatically
An asset is good enough for this stage if:
- it fits the declared footprint
- it reads from the game camera without zooming in
- it makes facing clearer than the current cube
- it survives slice viewing without becoming visual noise
- it does not rely on final textures to communicate function
- it can be tinted or paired with simple materials cleanly
Start with these three first:
beltmixerdynamo
Those will do the most to improve readability fastest. After that, finish the rest of the current slice kit before adding any environment art.