Deploy web Studio / deploy (push) Successful in 1m3s
- Robot arm (category Industry): picks goods off the end of the nearest conveyor within its reach and puts them on the start of another conveyor within reach, or on a pallet a quarter turn on (pick / put: auto or a side). One move per item coming in (cycle 0) or a set cycle; waits while the line before it stands. The belt it feeds carries its goods at its pace and starts its loop when they land (feeds carry a time offset `ph`), so arm and belts stay in step. - Drawn as a 16-pose flipbook: two-link inverse kinematics per pose, each pose shown for a sixteenth of the cycle by a stepped CSS animation (iso-flip; pose 0 alone when unanimated). Poses pointing away from the viewer are drawn before the base, the others after it. - New sprite method beam(a, b, n, w, mat): a square bar between two 3D points, six faces culled and shaded like face(). Native, so the factory demo renders in 4.7 ms instead of 18.8 ms. - Factory demo: a palletiser at the end of the carton line, a loading robot passing drums from the incline onto the loading belt into the truck. MCP instructions on robot arms. Checks: 70 Rust tests (arms and belts in step, waiting arm, beam faces from every side), Studio 109/109, web 90/90.
31 lines
773 B
TOML
31 lines
773 B
TOML
# isokit factory demo: producers making goods at a set rate, conveyors carrying them,
|
|
# robot arms passing them on.
|
|
# Open it with `isokit studio examples/factory`.
|
|
title = "isokit factory"
|
|
note = "Presses make goods at a set rate; conveyors carry them at their own speed, so the gap between the goods follows rate and speed; robot arms pass them on. Tap a press, belt or robot for its numbers. Drag to pan, Ctrl + wheel or pinch to zoom."
|
|
default_level = "site"
|
|
default_rotation = 1
|
|
prelude = []
|
|
theme = []
|
|
|
|
[[level]]
|
|
id = "site"
|
|
label = "Site"
|
|
title = "The production yard"
|
|
|
|
[[param]]
|
|
name = "labels"
|
|
type = "bool"
|
|
default = true
|
|
label = "Labels"
|
|
|
|
[[param]]
|
|
name = "running"
|
|
type = "bool"
|
|
default = true
|
|
label = "Animation"
|
|
|
|
[build]
|
|
out = "dist/index.html"
|
|
budget = 6000
|