From 5e20bb16910c4e14275210c84b7a0bed6264e6b5 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 4 Oct 2026 13:18:10 +0000 Subject: [PATCH] Initial project skeleton: shared prompt, coordination, baseline Co-Authored-By: Claude Sonnet 5.5 --- COORDINATION.md | 12 +++++++ PROMPT.md | 92 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 17 +++++++++ assets/README.md | 11 ++++++ patches/.gitkeep | 0 recon/.gitkeep | 0 tests/baseline.md | 23 ++++++++++++ 7 files changed, 155 insertions(+) create mode 100644 COORDINATION.md create mode 100644 PROMPT.md create mode 100644 README.md create mode 100644 assets/README.md create mode 100644 patches/.gitkeep create mode 100644 recon/.gitkeep create mode 100644 tests/baseline.md diff --git a/COORDINATION.md b/COORDINATION.md new file mode 100644 index 0000000..2afdd8f --- /dev/null +++ b/COORDINATION.md @@ -0,0 +1,12 @@ +# Coordination + +Claim a task before starting. Release it when done. One agent per file. + +| Task | Agent | Branch | Status | +|------|-------|--------|--------| +| Phase 0: build Orca, record baseline | Claude | | open | +| Phase 1: prime tower trace | Codex | | open | +| Phase 1: flush-into-object trace | Grok | | open | +| Phase 1: Flexi Cube inspection and options | Claude | | open | + +## Notes and disagreements diff --git a/PROMPT.md b/PROMPT.md new file mode 100644 index 0000000..83e570a --- /dev/null +++ b/PROMPT.md @@ -0,0 +1,92 @@ +# FLUSH FIDGET — shared agent prompt + +Every agent (Claude, Codex, Grok) reads this file first. It is the single source of +truth for the project. If something here is wrong, say so in COORDINATION.md; do not +quietly work around it. + +## Goal + +Orca Slicer wastes most of the filament on a multi-colour print as purge: one real +4-colour slice used 94 g of purge and prime tower against 19 g for the model itself +(392 filament changes). Make that purge land in a **flush fidget** instead of the +tower or a waste bin. + +The flush fidget is the print-in-place Flexi Cube at `assets/flexi cube.stl`. +Getting that one file through the whole process is the goal: slice it as the purge +target, print it, and have it still flex. + +**Random colours on the outside are wanted.** Purge showing on the exterior in +unplanned colours is the desired look, not a defect. Do not hide it inside infill. + +## Success test + +Slice a 4-colour model with the Flexi Cube on the plate as the purge target. Then: + +1. The Flushed + Tower totals in Orca's filament table drop substantially against + the baseline recorded in `tests/baseline.md`. Ideal: no prime tower at all. +2. The G-code preview shows purge extruded into the Flexi Cube, with mixed colours + on its outer surface. +3. The printed cube still moves. Colour-change purge must not fuse the joints or + fill the clearances. This is the hard constraint and the likeliest failure. + +## The core problem + +Purge needed per layer depends on the colour changes on that layer. The cube has a +fixed cross-section per layer. They won't match. Layers needing more purge than the +cube can take, and layers needing less, both have to be handled. Any design that +ignores this will look right in the preview and fail on the printer. + +## Rules + +- Smallest change that works. Do not rewrite the slicer. +- Label every claim VERIFIED (you read the code or ran it) or UNVERIFIED. File paths + in this document are guesses until an agent confirms them. A starting guess for the + tower code is `src/libslic3r/GCode/WipeTower.cpp` and `WipeTower2.cpp`. +- Metric units. No new dependencies without asking Fred. +- Orca Slicer is AGPL-3.0. Keep upstream as a remote. Keep the licence intact. +- Only touch this repo and the Orca fork. Never touch Fred's other workspace files. +- Do not push to `main`. Do not push anywhere public. Fred decides when anything is + published. +- Never print without Fred present. + +## Team protocol + +- Each agent works in its own git worktree on `agent//`. +- Claim a task in `COORDINATION.md` before starting. Two agents never edit the same + file at once. Claude merges. +- Write findings to `recon/-.md` with file paths and line numbers. +- Put code changes in the Orca fork. Keep the resulting patches in `patches/`. + +## Phases + +**Phase 0 — Baseline (Claude).** Build Orca from source on this machine. Record the +exact commands and build time in `tests/baseline.md`. Slice the reference model and +record its Flushed and Tower totals there. Nothing proceeds until this works. + +**Phase 1 — Recon, read-only.** +- Codex: trace how the prime tower is generated layer by layer, and where the flush + matrix and multiplier feed in. +- Grok: trace the existing "flush into objects' infill / support / this object" + feature. Where does purge get routed into an object, and what limits how much it + absorbs? +- Claude: inspect `assets/flexi cube.stl`. Report its volume per layer, joint + clearances, and wall thickness. Then set out the options for reconciling purge + volume with that cross-section, with effort and risk for each. + +**STOP after Phase 1. Report to Fred. Write no code until Fred approves one option.** + +## Options to evaluate (do not implement yet) + +1. No code: use the existing flush-into-this-object feature with the cube as the + target. Say whether it is enough on its own. +2. Extend flush-into-this-object so the chosen object absorbs more, including onto + its outer surface. +3. Replace the tower geometry with the cube. Likely hardest. + +For each: files touched, effort, and what breaks. Option 2 or 3 must say how the +joints stay free. + +## Reporting + +Short and plain. Lead with the answer. If you are unsure, say so and say what would +settle it. Fred has ADHD: no walls of text, no unrequested tangents. diff --git a/README.md b/README.md new file mode 100644 index 0000000..557d416 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# flush-fidget + +Turn Orca Slicer's purge waste into a printed fidget. The target object is a +print-in-place Flexi Cube, with random exterior colours welcome. + +Agents: read `PROMPT.md` first. + +``` +PROMPT.md shared prompt for every agent +COORDINATION.md who is doing what right now +assets/ flexi cube.stl and reference models +recon/ read-only findings, one file per agent per topic +patches/ changes to the Orca fork, as patch files +tests/ baseline numbers and test slices +``` + +The Orca Slicer fork is a separate repository. diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 0000000..57d0821 --- /dev/null +++ b/assets/README.md @@ -0,0 +1,11 @@ +# assets + +`flexi cube.stl` is not here yet. It lives on Fred's Omarchy machine at +`/home/fred/Downloads/flexi+cube+3_stls/flexi cube.stl`. The folder name suggests +three STLs, so confirm which one is meant. + +Copy it in with: + + scp "/home/fred/Downloads/flexi+cube+3_stls/flexi cube.stl" fred@10.0.10.12:/home/fred/workspace/projects/flush-fidget/assets/ + +Check the licence and source of the model before this repo is made public. diff --git a/patches/.gitkeep b/patches/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/recon/.gitkeep b/recon/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/baseline.md b/tests/baseline.md new file mode 100644 index 0000000..60ed245 --- /dev/null +++ b/tests/baseline.md @@ -0,0 +1,23 @@ +# Baseline + +Re-slice the reference model with the current profile before any code changes, and +fill this in. Phase 0 is not done until it is. + +Reference slice (2026-10-04, Bambu P2S, 0.20mm High Quality, 4 filaments, tower on): + +| | Model | Support | Flushed | Tower | Total | +|---|---|---|---|---|---| +| grams | 18.78 | 2.03 | 61.61 | 32.95 | 115.37 | + +Waste (Flushed + Tower): 94.56 g. Filament changes: 392. Print time: 11h52m. + +Flush volumes in that slice are unrecorded. Record the matrix and multiplier here +for the new baseline. + +| Item | Value | +|---|---| +| Orca build commit | | +| Build time | | +| Flush matrix and multiplier | | +| Flushed (g) | | +| Tower (g) | |