Status: current implementation target. These defaults are intended to stop open-ended discussion and give the project a buildable prototype shape. Anything here can change, but it should change explicitly in docs rather than implicitly in chat.
Build a small scenario that proves three things:
- layered 3D placement creates interesting routing and packing problems
- inspection tools keep dense builds readable
- strict adjacency, facing, and support rules are enough to produce meaningful factory design
The first slice is arcane-industrial first, with bio-industrial processing present as one ingredient family rather than a full subsystem. Enemy pressure is absent. The prototype is a pure construction and routing game.
The map should be handmade and bounded. Target a compact build volume rather than a sprawling map. A reasonable starting assumption is a build space around 24 x 8 x 24 cells, adjusted only if readability testing says otherwise.
- Cells are uniform cubes with orthogonal adjacency only.
- Machines rotate in 90-degree steps around the vertical axis.
- Most machines are
1 x 1 x 1in the first slice. - One transport piece may occupy multiple vertical cells to prove multi-cell placement.
- Every occupied machine cell requires support beneath it through terrain, frame blocks, or another supported occupied cell.
- Unsupported bridging is not allowed unless a future machine explicitly grants it.
Frame Block is a basic inert construction piece for building floors and supports. It is not counted as one of the primary machine types.
Keep the resource set intentionally small:
ore_chunk: raw solid extracted from mineral nodesbiomass: raw solid extracted from organic nodescrushed_ore: processed solid intermediatereactive_mix: unstable intermediate created by combining ore and biomassstabilized_plate: final slice objective outputpower: explicit networked machine requirementcontamination: environmental field value plus occasional output impurity
This keeps materials item-based while still letting the prototype exercise one field-like systemic hazard.
The first five machine types should be:
ExtractorCrusherMixerPressDynamo
These are supported by infrastructure pieces:
Belt: horizontal item routingLift Wheel: vertical item transfer between floorsWire: orthogonal power routingFrame Block: inert support structure
Extractor
- Pulls one raw resource type from a compatible map node
- Outputs items from its front face
- Requires power on its rear or side face
Crusher
- Converts
ore_chunkintocrushed_ore - One item input face, one item output face, one power face
- Safe baseline processor with no contamination emission under normal load
Mixer
- Combines
crushed_oreandbiomassintoreactive_mix - Two input faces, one output face, one power face
- Primary contamination source in the slice when starved, overloaded, or unpowered mid-process
Press
- Converts
reactive_mixintostabilized_plate - One input face, one output face, one power face
- Suffers reduced output quality when its local contamination exposure is high
Dynamo
- Produces a fixed amount of power
- Connects into the wire network
- Exists to create topology and capacity questions, not fuel logistics, in the first slice
The canonical slice chain is:
- Extract
ore_chunk - Crush to
crushed_ore - Extract
biomass - Mix
crushed_ore + biomassintoreactive_mix - Press
reactive_mixintostabilized_plate
This is intentionally small but already forces the player to solve:
- dual-input routing into one machine
- vertical or layered transport when floor space is tight
- power distribution to a compact build
- contamination management near unstable processing
Transport and power for the slice are locked to:
- belts for horizontal solid item transport
- lift wheels for vertical solid item transfer
- wires for explicit power routing
Pipes, rails, arms, teleporters, mass drivers, and logistics drones are out of scope for this milestone.
Contamination is both a spatial field and a possible material impurity.
Field behavior:
- Each cell stores a contamination intensity value.
- Contamination spreads only through orthogonally adjacent cells.
- Spread attenuates with distance and is blocked by terrain.
- Empty space transmits contamination more easily than solid terrain.
- Machines do not fully block contamination, so compact builds can poison themselves.
Sources:
- mixer instability
- recipe interruption
- power loss during unstable processing
Effects:
- local efficiency loss
- higher machine fault risk
- chance for
reactive_mixto become tainted under high exposure
Mitigation in the first slice:
- layout isolation
- separating unstable processing onto another floor
- shutting down the source machine
- waiting for passive decay
Active scrubber machines are deferred until contamination proves valuable enough to keep.
The first slice should support exactly:
- pause
1x4x- single-step tick
Anything less makes debugging and inspection worse. Anything more is unnecessary before performance and readability are known.
Separate simulation commands from view commands.
Simulation commands:
- place structure or machine
- remove structure or machine
- rotate machine
- enable or disable machine
- set machine recipe or mode
View commands:
- change active slice
- rotate camera
- inspect machine
- toggle overlays
Replay and deterministic testing should only depend on simulation commands plus the initial scenario state.
Always visible HUD:
- active tool
- active slice
- time control state
- major alerts such as unpowered machines or contamination spikes
Hover information:
- machine name
- facing
- ports
- current state
- immediate compatibility feedback
Selection panel:
- recipe or mode
- input/output buffers
- power state
- throughput
- contamination exposure
- connected systems summary
Overlay modes:
- connectivity
- throughput
- contamination
- structural support
The prototype explicitly excludes:
- enemies or combat
- avatar or first-person mode
- procedural maps
- multiplayer
- dynamic terrain deformation
- teleporters and other long-range logistics
- moving multi-block contraptions
- fluids, gases, and full chemistry systems
- more than one explicit power family
- automation scripting or logic programming
The slice is successful if a player can:
- understand where machines can be placed and why
- build a compact multi-level chain that produces
stabilized_plate - diagnose a routing or power bottleneck using overlays
- notice contamination problems and solve them through layout changes
- replay or reload a scenario without simulation divergence