Pipeline
One manifest in, one 3MF out. Nothing in the pipeline sends jobs to the printer.
What exists
Renders from the shell module, insert layouts from the solver, and the 3MFs as Bambu Studio opens them.
hex-bits.3mf in Bambu Studio: plate 1 tray + spine panel, plate 2 cover, plate 3 yellow insert with black labels. Opens with no dialogs.
Part.settings: 8% infill, 2 walls on one object only.
Stamps rendered by stamps.preview: the regions the engine prints, hex-bits palette
Text is outlined by the engine, so these show the real letterforms. Deboss shows as a lighter shade on the black body.
stamps/examples/
books/hex-bits/stamps/candidates/ - 8 of 40
Numbers e2e run, 2026-10-28, Bambu Studio CLI, 0.20 mm Standard
| build | thickness | items | plates | parts / objects | filament | print time | build |
|---|---|---|---|---|---|---|---|
| hex-bits (octavo 220 x 150) | 35 mm | 32 of 32 | 3 | 7 / 4 | ~348 g | 454 min (~7.6 h) | 8 s |
| precision-drivers | 40 mm | 13 of 13 | 4 | 8 / 5 | ~521 g * | 569 min (~9.5 h) * | 8 s |
| coupon (one color) | - | - | 1 | 12 / 2 | 38.9 g | 75 min | 9 s |
hex-bits per plate: tray + spine panel 130.5 g / 154 min, cover 77.0 g / 95 min, insert 141 g / 205 min
(after the 8% gyroid override; was 183 g / 221 min solid).
* precision-drivers was sliced before the insert override: insert 246 g / 246 min, plate 4 holds only the inside_cover panel (57 g / 59 min).
uv run pytest: 115 passed in 23 s.
Links
- PLAN.md - decisions, print rules, module contracts
- README.md - pitch and the three commands
- docs/E2E-REPORT.md - first use of the pipeline
- skill/bookbox/SKILL.md - making a new book, step by step
- stamps/BRIEF.md - the stamp contract for agents
- stamp gallery (local, 127.0.0.1) - live, pick writes manifest.yaml
uv run bookbox coupon --book books/hex-bitsbuilds books/hex-bits/out/coupon.3mf - print this firstuv run bookbox build books/hex-bitsbuilds books/hex-bits/out/hex-bits.3mf - the first book
Decisions settled with the owner, 2026-10-28
| topic | decision |
|---|---|
| printer | Bambu Lab P1S, AMS, bed 256 x 256 x 256, 0.4 nozzle, PLA |
| colors | up to 4 per book (palette slots c1..c4 = extruders 1..4) |
| opening | hinged front cover, pin hinge, 1.75 mm filament pin (hole 1.9 mm) |
| closure | 2 neodymium discs 3 x 4 mm, pockets open to the inside, pressed in after printing; hinge: none and snap lip later |
| formats | pocket 180x120, octavo 220x150, quarto 250x190 in formats.yaml; caps height 250, width 200 |
| thickness | auto from the insert, rounded up to 5 mm, clamped 15..70; manifest may pin it |
| decoration | 1.6 mm panels press-fit into recesses on any face; glue fallback; agents freestyle |
| marks | inlay (flush, other color) and deboss (0.6 mm recess); no emboss |
| spine text | reads top to bottom |
| inserts | separate part, dropped into the tray, accent color, labels inlaid on top |
| items | library of shape primitives (items/*.yaml); item + count; auto layout with a pin escape hatch |
| stamps | LLM-drawn SVG under a strict contract and a linter; 20 candidates per face in a 2D gallery |
| CAD | build123d (OCCT) in Python, managed by uv |
| capture rig | silhouette rig designed in a separate session; not in this repo yet |
| printing | owner opens the 3MF in Bambu Studio and prints; coupons first |
| agents | tools print markdown by default, --json for scripts |
Open items tk ls, 2026-10-28
Rows in yellow wait on an owner decision.
| ticket | title |
|---|---|
| boo-14rz closed | insert: solid insert costs 183 g and 3.7 h on hex-bits. Infill override done (141 g / 205 min); further cuts need geometry (ribbed underside, lower body) owner decision |
| boo-ivwn | Spine panel is only T-9.6 mm wide: hinge takes the top of the spine owner decision |
| boo-xxmo | Bed-side panels as windows with a 45 deg lip (proposal B) so front/back panels are swappable owner decision |
| boo-jeh9 | Check the insert finger notch and 45 deg undercut on the first print |
| boo-lywt | Check the hinge opening angle (stops near 145 deg) on the first print |
| boo-sge1 | Side-face panel recesses print with a 1.6 mm horizontal ledge |
| boo-uuye | insert labels: i/j dot gap is 0.3 mm, under the 0.5 mm minimum |
| boo-zh18 | One bundled font for insert labels and stamps |
| boo-s7ed | stamps: text outlines have no kerning |
| boo-px69 | threemf: map palette filament names to Bambu filament presets |
| boo-s25u | threemf: size the prime tower reservation from Bambu's own estimate |
| boo-gotn | threemf: regenerate the P1S settings template after Bambu Studio upgrades |
| boo-4zo4 | hinge: none and no-magnet snap-lip variants |
| boo-ou8a | Stamp batches via OpenRouter script |
| boo-yjxq | Capture rig: silhouette scanner for slot outlines |
| boo-stym | Capture flow: second side photo for item height |