Leumas Plushies
Leumas Plushies at plushies.leumas.tech — a plushie as a 3D model, as flat cutouts and as a printable sewing pattern; three designs today at any size, and an order lane for your own picture.
Leumas Plushies — plushies.leumas.tech
A plushie three ways: turning in 3D, laid flat as the cutouts it is sewn from, and as a printable sewing pattern at any finished height from 100 to 800 mm. Three built-in designs — bear, bunny, whale. Looking is free; the clean true-size print is what a membership buys; your own picture is taken as an order request and kept on a waitlist until ordering opens.
Blueprint: products/TODOS/plushies.leumas.tech.md. Engine: shared/packages/plush. API: products/leumas-api/src/{routes,controllers}/plushies.js at /api/plushies.
What is honestly here
| Lane | State |
|---|---|
| Built-in designs → validated pattern → nested tiled sheets → HTML / PDF | Runs. @leumas/plush. |
| 3D turntable of each design | Runs, in the browser — procedural three.js builders in @leumas/plush/three behind a lazy(). No files are made. |
| Picture → 3D model → flattened pieces | Dark. Needs a GPU worker and a Blender worker (blueprint §14). GET /api/plushies/status reports lanes.imageTo3d: false, blender: false. |
| Orders | Blocked by design. POST /api/plushies/orders keeps every request as a plush_orders row with status: 'waitlist' and answers 202 { accepting: false }. PLUSHIES_ORDERS_OPEN=1 flips new requests to requested. |
Pages
/ vitrine landing (3D + cutout posters) · /make and /make/:design the pattern maker · /order upload + request (blocked banner) · /gallery published patterns · /guide a HowTo · /faq · /pricing · /sdk · /legal. Not indexed: /mine (member), /p/:id (live rows).
Money
Rides forge and every Leumas tier — no plan row. Policy rows plush.* in shared/packages/entitlements/src/policy.js: plush.preview and plush.order on the floor, plush.pattern (the clean print) and plush.seams for members.
Build and verify
pnpm --filter @leumas/plushies-web build # og → vite → prerender → crawler files → check:plushies-public
pnpm smoke:plushies-site # the built site through the Imperium worker + the API seam
pnpm --filter @leumas/plush test
Dev: pnpm dev:plushies (port 5083; leave VITE_API_BASE unset).