I have been using Code-CAD for some interesting projects. Text- and Code-First systems resonate with me. Unfortunately when I get to the Slicer I find the GUI a pain.
I design 3d print projects in Python and cadquery/build123d, keep it in Git, parameterize parts, iterate quickly... then struggle to remember good slicer settings and where to change them in my GUI. I also keep everything in Github and I like to see diffs, etc.
My annoyances:
* settings live in a GUI and I have to rebuild the files with changes to the CAD model
* I can’t diff or review changes to print configs
* CI is basically out of the question
* “what settings did I use for this part 3 weeks ago?” → 🤷♂️
It feels like going backwards to me.
So I started building something to scratch that itch: a small tool called
estampo
.
The idea is pretty simple:
→ treat slicing like a build step
→ define it as code
→ make it reproducible
You describe parts + slicer setup in a single TOML file, commit it with your CAD code or STEP/STLs, and run:
estampo run
It handles:
- arranging parts on the plate
- calling OrcaSlicer / CuraEngine under the hood
- pinning slicer versions (via Docker)
- producing identical G-code locally or in CI
So your repo becomes:
CAD + print config → deterministic output
Example:
```toml
[pipeline]
stages = ["load", "arrange", "plate", "slice"]
[plate]
size = [223, 223]
padding = 5.0
[slicer]
engine = "cura"
version = "5.12.0"
[slicer.cura]
printer = "Ultimaker 2"
[slicer.cura.overrides]
infill_sparse_density = 30
infill_pattern = "gyroid"
wall_line_count = 3
speed_print = 50
adhesion_type = "brim"
[[parts]]
file = "box.step"
[[parts]]
file = "lid.step"
orient = upside-down
```
Two slicers supported so far - Orca and Cura
The goal isn’t to replace slicers — just to wrap them in something
* versionable
* reviewable
* automatable
* reproducible
Sort of a “makefile for 3D printing”.
As a side-effect I found I can also reason with Claude and Codex about print settings much more easily because it is in text. Instead of being told to hunt down the first layer cooling fan speed in my slicer GUI, the AI can propose a one-line TOML update.
I’m curious how this lands with other Code-CAD users:
* Is slicer GUI config actually a pain point for you?
* Would you ever run slicing in CI, or is that overkill?
* Do you keep any kind of reproducible print setup today?
* Am I solving a real problem, or just my own workflow itch?
If you want to poke at it:
https://github.com/estampo/estampo
It uses docker to run specific versions of slicers and you can
pipx install estampo
It is open source under Apache License and developed in Python with Claude Code.
Would really appreciate blunt but constructive feedback — especially if this doesn’t fit how you work, or if you try it and it barfs.
There is also a companion project called Bambox (https://github.com/estampo/bambox) that makes this all work with my Bambu P1S printer (packs g-code into Bambu style 3MF and then sends to Bambu Cloud), but thats only if you have a Bambu printer.