Back to Impossible Machine
SOURCE / PINNED RELEASE

Made of little things.

Impossible Machine

Release
841127ac75f3…
Author-recorded commit
123625b81870…
License
LICENSE
Author’s source reference
nostr://npub1n8ga89w8h6tvwamxusfyzexw8gjy84yxu9rxgnmk955cxtml4ujswzxydd/wss%3A%2F%2Fgit.napplet.soy%2F/n-47d97da9d80

Archive hash verified: db7c8101167c4b07…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/impossible-machine.md
# Impossible Machine build spec

Purpose: arrange ramps and bumpers to guide a falling marble into a cup.
New product on the existing soyLI scaffold; deployment identity remains unchanged.
Requires: none. Optional theme maps the whole surface; optional storage saves solved
puzzles (session-only fallback). Optional config controls trail visibility.
SDK: themeGet, themeOnChanged, storage.getItem/setItem, config.subscribe.
No network, identity, social data, relay escape hatches or interop.
Three authored puzzles plus sandbox. Drag pieces, rotate selected ramps, add/remove,
drop, instant retry preserving layout, reset arrangement, and switch levels.
Compact toolbars; 44px touch controls justified by phone gameplay. Wide frames use
a side tool shelf and a larger board; phones use bottom controls. The board uses
normalized 600×600 coordinates with aspect-preserving scaling.
Minimum 280×360: accurate placement needs sufficient board and touch-control space.
Below this floor show an enlarge notice. Dark and light follow runtime colors.
No sign-in/loading gate. Optional persistence failure keeps gameplay in memory.

## Verification

- Guidance, TypeScript and production build pass via `soyli run verify`.
- Physics regression tests (`node --test tests/physics.test.mjs`): three solvable
  puzzles, bumper rebound and miss detection pass.
- Reference-shell conformance: five pass, zero failures. Signed-manifest checks,
  wire evidence and teardown measurement are skipped by that harness.
- soyLI sandbox: SDK save, add/remove, retry, drag/rotate/drop into cup and next
  puzzle exercised in Chromium. No page errors.
- 200×160, 320×560, 900×600 and 2400×1200 tested with runtime light/dark theme
  messages. No document overflow; the smallest frame shows the size notice.
- Screenshot captured and inspected through `soyli screenshot` (which also runs
  the soyLI publication host check). The standalone `soyli check` in 0.12.0 has a
  binding lookup bug: it supplies a zero pubkey despite the saved creator binding.
  Screenshot/publication correctly resolve that binding; creator is unchanged.