Robot arms pass goods from belt to belt; native beam primitive
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.
This commit is contained in:
grabowski committed 2026-10-24 22:05:46 +07:00
1 parent 18dd324543
commit f49798583e
14 files changed
+460 -31

No files matched your search

+6 -4
View File
@@ -40,7 +40,7 @@ isokit build C:/dev/myproject/site-view # dist/index.html, no server needed
Try the demos: `isokit studio examples/demo` (a works site),
`isokit studio examples/house` (a furnished house built from parts) and
`isokit studio examples/factory` (presses and conveyors).
`isokit studio examples/factory` (presses, conveyors and robot arms).
### Studio (for everyone)
@@ -196,8 +196,10 @@ storey.
Production lines: a Producer (category Industry) makes goods at a set rate
and puts them out on its +x side; Conveyors drawn from there carry them on,
round corners and up inclines, each at its own speed, so the gap between goods
follows rate and speed. Tooltips show the numbers. `examples/factory` (Factory
demo in the web Studio) has a few lines.
follows rate and speed. A Robot arm placed past a belt's end picks the goods
off and puts them on the next belt or a pallet, in step with them. Tooltips
show the numbers. `examples/factory` (Factory demo in the web Studio) has a
few lines.
Animations (fans, smoke, fish, traffic) step on about ten times a second by
default ("light"): running CSS animations repaint the whole drawing every frame,
@@ -231,7 +233,7 @@ studio/ the Studio GUI (served by `isokit studio`, and by the web
web/ web Studio shell: WASM backend for studio.js, projects, folders, zip, code editor
examples/demo demo project (works site)
examples/house house built from parts (walls, windows, doors, floors, furniture, roof)
examples/factory production yard: producers and conveyors
examples/factory production yard: producers, conveyors, robot arms
deploy/Caddyfile the web Studio's vhost on the buildfor.life web server (s1)
```