How to Build an Open-Source Concrete 3D Printer: M3-CRETE BOM, CAD, and Validation Workflow
M3-CRETE is the open-source concrete 3D printer designed to be replicated, validated, and extended by anyone with a US pallet of floor space, an aluminum extrusion supplier, and a willingness to commission a real machine. This guide is the canonical entry point for builders. Everything described here is published under CERN-OHL-W-2.0 for hardware and CC BY-SA 4.0 for the V-slot CAD library.
1. Why this exists
In 2026 the concrete 3D printing market has bifurcated into two unworkable extremes for the people who actually need a printer.
On one side sit closed industrial systems with capital costs in the high six figures, proprietary slicers, single-source pump consumables, and licensing terms that prevent any university lab from publishing the geometry of the machine, let alone modifying it. These printers exist to serve precast factories and venture-funded construction startups. They are not available, in any meaningful sense, to researchers, contractors, structural engineers, makerspaces, and university labs.
On the other side sit a long tail of unmaintained hobby plans built around CoreXY desktop-printer kinematics scaled up into a frame that cannot survive a real cementitious printhead. They exist as forum posts, dead Hackaday pages, and abandoned GitHub repositories. None of them are buildable today from sourceable parts.
M3-CRETE by Sunnyday Technologies exists in the gap. It is a buildable, field-serviceable, sub-meter cartesian motion system that fits on a standard US pallet, targets a low-five-figure system cost, runs on commodity Klipper hardware, and ships its full CAD assembly, bill of materials, firmware configuration, and validation harness as open-source artifacts. The design intent is mundane and important: enable a researcher, a contractor, a master's student, and a makerspace to all build the same machine, source parts locally where possible, modify the design to suit their work, and publish their results without permission from a vendor.
This page documents how to do that. It walks the architecture, the BOM, the CAD workflow, the validation tooling, the licensing model, and the open issues. Concrete 3D printing is not a 280-character problem.
2. Design philosophy
Three commitments shape every component decision in M3-CRETE.
The first is pallet-scale. The machine is engineered to fit, fully assembled, on a standard US pallet, a global shipping primitive that simplifies kit logistics, lab installation, and field deployment. The default M3-2 build volume is sub-meter in two axes and pallet-scale in the long axis. We treat the pallet footprint as a feature, not a bug. The reason is sourcing reality: above the pallet boundary you start needing freight LTL shipping, gantries no longer fit through a standard doorway, and long-stock aluminum extrusions become custom-cut SKUs with multi-week lead times. The pallet boundary is a hard sourcing constraint disguised as an aesthetic preference.
The second is sensorless homing via StallGuard4. Every stepper axis on the machine, including all four Z-posts and the two anti-racking Y motors, homes by detecting motor back-EMF when the carriage stalls against a hard stop. The machine has zero mechanical limit switches. The drivers are TMC5160s onboard the BTT Kraken mainboard, with StallGuard support over SPI plus a single-wire diagnostic output. Eliminating limit switches removes a substantial number of wired connections, an equal number of chances of dust contamination on a job site, and the small components that any concrete-aerosol environment will eventually destroy. A NEMA23 with a heavy-duty shaft is required, not optional, because StallGuard's torque/inductance window depends on it.
The third is scope discipline. M3-CRETE is a motion system. The pump, mixer, hopper, hose management, and material chemistry are all explicitly out of scope on this repository. The pump system is a separate Sunnyday product called NemoCrete and lives behind a different brand wall. Mix design lives in CEMFORGE, the Sunnyday AI formulation engine. Printability data lives in the Open3DCP open standard. By refusing to bundle these subsystems into one repository we keep the machine reviewable, maintainable, and forkable.
The design exclusions list is unusually explicit and worth reading verbatim:
- NO mechanical limit switches or endstops on the motion system (StallGuard4 only). The only endstops in the BOM are DIN-rail end-stop clamps for the electrical panel.
- NO leveling feet. Bed leveling is handled by measurement at the build plate, not by mechanical M16 feet on the frame.
- NO external reinforcement on the X-gantry beam. The X-carriage is two-sided (V-wheels on both top and bottom of the gantry exterior), so any external bracket on the gantry faces would block carriage travel. All reinforcement must be internal to the C-channel.
- NO HEPA filter, carbon fiber stiffeners, or LED enclosure lights on the canonical build. These are downstream user choices.
- NO Supabase or other proprietary backend. The BOM viewer at m3-crete.com/bom is a static site over a JSON file.
The exclusions section exists because the project has accreted many rounds of "have you considered adding..." suggestions over the last year and a half. Each rejection is an active engineering decision, documented so that contributors do not waste round-trips proposing rejected directions.
3. Architecture overview
The default model variant is the M3-2, a pallet-scale cartesian gantry with a sub-meter working envelope. The motion system has four mechanical subsystems: a 4080 C-Beam frame, a dual-Y belt-pinion gantry, a quad-Z self-tramming Z-stage, and a printhead carriage on a spliced X-beam.
Frame: 4080 C-Beam, single-length stock
The primary structure is 4080 C-Beam aluminum extrusion, used for Z-posts and Y-gantry rails, with 2040 V-slot for cross-bracing. Every structural member is cut to a single canonical length. There are no custom cuts and no mixed lengths. Single-SKU procurement is a non-negotiable for a kit business and a meaningful gift for any solo builder. The C-channel openings face inward toward the printer cube so the belt path runs inside the C, where it is shielded from concrete spray and aerosol.
The X-axis is built from two stock segments spliced at center span to yield the longer build envelope. The splice uses a straight-line internal slot-linking kit that fits inside the T-slot channels and sits below the wheel path, plus three V-slot bars staggered inside the C-channel and bonded with structural adhesive. The center bar bridges the splice equally to either side; the left and right bars fill the remaining sections. No long custom-cut extrusion is required.
Corner joints use 5-screw T-plate or L-plate connectors at every 4080-to-4080 junction.
Motion: belt-pinion drive, polycarbonate V-wheels, GT2 belts
Every axis runs on GT2 belts and polycarbonate V-wheels. The Y-axis uses a wider belt; the X-axis carriage runs on a narrower belt that fits inside the gantry slot (a deliberate cross-axis material distinction documented in the BOM). The Z-axis is belt-driven from hub disks on the motor side and smooth idlers at the post bottom.
V-wheels engage the V-groove on the narrow face of each extrusion at a specified engagement depth. This depth is encoded as a hard invariant in the validation harness; any geometry that drops the wheel out of engagement fails CI before the STEP file lands.
Steppers: NEMA23, sensorless homing
The motion system uses NEMA23 motors with heavy-duty shafts: one X, two Y for anti-racking, and four Z for self-tramming. An additional motor (NEMA34, owner-supplied) drives the pump, on a separate ecosystem. The shaft sizing is required for StallGuard4 sensorless homing torque compatibility, not a comfort choice.
Z-axis motors straddle the top Y-brace, body above and shaft pointing down. A hub disk below the brace routes the belt over the brace and down the post to the carriage, where it terminates at the bottom idler and returns. This routing eliminates lead screw alignment as a build skill and lets each Z-corner tram independently against the others under Klipper's Z_TILT_ADJUST macro.
Controller: BTT Kraken, Klipper, Pi 5
The mainboard is a BTT Kraken with onboard TMC5160 drivers configurable for SPI-mode StallGuard4. The host runs Klipper on a Raspberry Pi 5 with a touchscreen. The firmware repository lives at M3-CRETE-FIRMWARE for kinematic profiles and stepper configuration.
Specification table (qualitative)
| Parameter | M3-1 | M3-2 (default) | M3-4 |
|---|---|---|---|
| Build envelope | Sub-meter cube | Pallet-scale long, sub-meter wide and tall | Pallet-scale in two axes, sub-meter tall |
| X-axis splice | None | Center splice | Center splice |
| Y-axis splice | None | None | Center splice |
| Frame primary | 4080 C-Beam | 4080 C-Beam | 4080 C-Beam |
| Stepper architecture | Quad-Z self-tramming, dual-Y anti-racking | Same | Same |
| Pallet footprint | One standard pallet | One standard pallet | One standard pallet |
| Target system cost | Low-five-figure | Low-five-figure | Low-five-figure |
| License | CERN-OHL-W-2.0 | CERN-OHL-W-2.0 | CERN-OHL-W-2.0 |
Variants are configured in config.js as MODEL_VARIANTS with quantity overrides per part. Switching between variants in the BOM viewer is a one-click operation.
4. The bill of materials
The full BOM is served live at m3-crete.com/bom as a static JSON document with no backend. The viewer supports multi-supplier selection, per-part quantity overrides, fabrication-method toggles (Buy / Print / CNC), CSV and JSON export with supplier filters, model variant selection, and a "Suggest Supplier" button that opens a GitHub Issue. The privacy guard in the validation tooling explicitly suppresses vendor names, SKUs, unit costs, prices, and supplier identifiers from any audit emit path; cost data exists in the data file but is not exposed by the public report surface.
Sourcing reality
There is no US manufacturer of V-slot extrusion. Every V-slot bar in the BOM is imported from China through a US distributor or shipped direct. Bonnell Aluminum / TSLOTS in Niles, Michigan makes T-slot but not V-slot, and a custom V-groove die would cost a substantial domestic tooling line. We have estimated and rejected that capital line until kit volume justifies it.
The supplier strategy splits the build across three procurement paths:
- MakerStore USA (Atoka, OK), the US warehouse for the full V-slot ecosystem, domestic shipping, kit-friendly. Primary source for V-slot, gantry plates, V-wheels, eccentric spacers, GT2 pulleys.
- Bulkman3D, China factory-direct, lowest unit cost, slowest shipping. Backup source where lead time tolerates it.
- Amazon, for electronics, wiring, fasteners, M5 hardware kits, and Loctite Blue 243. A meaningful fraction of the build flows through Amazon SKUs because the alternative (specialty distributors for a single bag of M5 nuts) is not worth the friction.
Cost shape
The kit-business view has Sunnyday-supplied parts (frame, plates, motion components) packaged at a margin that supports continued maintenance, with the customer adding a smaller Amazon order for small hardware and electronics. The total system cost lands in the low-five-figure range inclusive of motors and electronics if the customer is sourcing fresh; meaningfully lower if the customer already owns a BTT Kraken and most of the steppers, which most of our early adopters do.
The BOM surfaces all of this directly in the viewer. Click a supplier chip to assign that supplier to all matching parts; click "I have this" to exclude a row from the buy list; flip the Buy / Print / CNC toggle on a fabricated part to mark it as locally produced. Export the result as CSV for the spreadsheet, or as JSON for the AI buying-guide assistant.
A short caution: supplier listings in the BOM viewer are community-contributed reference information, not endorsements. Prices and availability change. Verify each line against the live supplier page before placing an order.
5. CAD and assembly
The full M3-2 assembly is a parametric CadQuery-driven STEP, generated from a script (CAD/m3_2_assembly.py) that runs against a versioned V-slot library. The STEP file lives in the repository as the human-reviewable artifact; the Python script is the source of truth.
LLM-driven CAD: the AI-CAD whitepaper workflow
The M3-CRETE CAD workflow is documented in the Sunnyday AI-CAD whitepaper, titled Self-Verifying LLM-Driven Parametric CAD Assemblies: Lessons from a Meter-Scale Concrete 3D Printer (Sonnentag, 2026). The headline claim of that paper is intentionally narrow: an LLM coding agent paired with CadQuery is most useful when forced to verify its own geometry against engineering invariants on every iteration, not when asked to "design a part." The harness is the artifact that matters; the agent is a means.
This work sits in a longer lineage. The M3-CRETE printer is the Print stage in Sunnyday's ICME-style closed loop, in the spirit of Olson's Materials by Design framework: predict properties from composition and process, deposit the candidate, measure the result, feed the measurements back into the predictor.
The whitepaper documents three layers:
- Geometry library, a set of STEP files imported from the OpenBuilds ecosystem (CC BY-SA 4.0), plus extended/compatible parts in
CAD/Advanced/and vendor-sourced models for steppers, the BTT Kraken board, and GT2 pulleys. STEP files have arbitrary native orientations, which is the single largest source of agent placement bugs. Aprobe_steps.pyscript reads the bounding box of any STEP file before the agent attempts to place it. - Assembly script, a CadQuery 2.7 script that loads the V-slot library, places every component parametrically against frame topology constants (
W,D,H), and writes the assembled STEP. The script evolved through three major versions: a pure-parametric early build, a Phase C completion with stricter component coverage, and a v3 filter-and-replace strategy that loads a human-edited Fusion 360 export and surgically replaces specific components with parametric versions. - Self-verification harness, a
preview_assembly.pythat runs engineering invariants against the generated geometry, renders three orthographic projections (XY, XZ, YZ) headlessly with matplotlib, and exits non-zero on any failure.
CADCLAW: extracted as its own tool
The validation harness was extracted into a generalized framework called CADCLAW (Zenodo DOI 10.5281/zenodo.19647391), now a separable open-source project. CADCLAW is field-tested against the M3-CRETE repository on every release. The latest field-test report documents Doctor PASS at full coverage, the harness running end-to-end after one workaround, and a small set of issues identified for the next milestone. CADCLAW reads the BOM, classifies STEP solids by sorted bounding-box signature, runs BOM/CAD count cross-checks, and emits a markdown report.
The privacy guard is unconditional: vendor names, SKUs, unit costs, and supplier identifiers are dropped from every emit path, regardless of whether the project's cadclaw.yaml declares them private. This is non-negotiable in concrete 3D printing where supply chain advantage is real and the BOM viewer is the public interface.
Specific design decisions
A few CAD decisions deserve calling out because they fail in obvious ways if you do not know them:
- X-gantry internal reinforcement, all reinforcement is internal to the 4080 C-channel because the X-carriage is two-sided. The slot-linking kit sits below the wheel path; V-slot bars are staggered inside the C-channel and bonded with structural adhesive, with the center bar bridging the splice equally on each side.
- Slot-linking kit for splices, the long X-axis is achieved by splicing two stock segments using internal T-slot connectors, not external 5-hole 90-degree plates. External plates would protrude into the wheel zone and block carriage travel.
- Multi-screw corner plates, every 4080-to-4080 corner uses a T-plate or L-plate. These are sourced from MakerStore USA or Bulkman3D.
- Quad-Z hub disk routing, Z-motors straddle the top Y-brace; the belt routes from a hub disk under the brace, down the post, around a smooth idler at the bottom, and back up to the Z-carriage. This eliminates lead screws entirely.
- NEMA23 mount fastening, the canonical NEMA23 motors have pass-through mounting holes, not tapped holes. Each motor uses M5 cap screws with M5 nuts (nylock or plain plus blue Loctite), and the 3D-printed motor mount is a clearance plate, not a threaded anchor.
6. Mix design and printability
M3-CRETE is a hardware platform, not a materials platform. We do not ship a recommended concrete mix in the repository. The reasons are practical: cementitious printability is a function of local aggregate, ambient humidity, fresh-state rheology, set-time targets, and structural intent. A mix that prints well in Appleton in October will not print well in Phoenix in July. Hard-coding a recipe would be a disservice.
What we do ship is the Print stage in the Predict to Print to Prove loop:
- Predict, CEMFORGE is Sunnyday's machine-learning formulation engine. It is trained on validated 3D-printed cementitious specimen data and generates candidate mixes with supported performance predictions where sufficient training data exists. M3-CRETE consumes CEMFORGE-generated formulations as input. The two systems are designed to talk: CEMFORGE outputs include extrusion-relevant parameters (yield stress, plastic viscosity targets, set-time windows, water-to-binder ratio) that map directly onto Klipper extrusion settings.
- Print, M3-CRETE deposits the mix layer by layer at controlled flow rates and toolpath velocities. Klipper macros expose extrusion multipliers, retract on travel, and per-layer Z compensation. The printhead is a 1" Male NPT pipe connection on a counter-weighted hose; pump pressure and material velocity are owned by the upstream pump system.
- Prove, Open3DCP is the open-data standard (Zenodo DOI 10.5281/zenodo.19647471) for capturing 3DCP printability outcomes: layer adhesion, interlayer cold joint, dimensional fidelity, time-to-buildable-height. Printer outputs feed Open3DCP records, which feed back into CEMFORGE training data, closing the loop.
The academic literature on 3DCP printability is robust enough that a builder does not have to start from scratch. Chen et al. (2020) studied the effect of printing parameters on interlayer bond strength of 3D printed limestone-calcined-clay-based cementitious materials and showed how interval time and nozzle standoff drive cold-joint formation. TU Delft's set-on-demand work (2021) demonstrated chemical activation strategies that decouple pumpability from buildability. The TU Delft graded-clays study (2021) identified calcined-clay supplementary cementitious materials as a viable LC3 path for 3DCP. An, Zhang, and Yang (2024) reviewed coarse aggregate incorporation strategies in Virtual and Physical Prototyping (DOI 10.1080/17452759.2024.2351154). For limestone-blended binder fundamentals relevant to PLC-based 3DCP, Tennis et al. (2024) is the current state-of-the-art reference for limestone in cement.
We do not redo the CEMFORGE pillar page here. The point of this section is to establish that the printer is one stage in a larger Predict-Print-Prove loop, and that the boundary between the printer (M3-CRETE), the formulation engine (CEMFORGE), and the data standard (Open3DCP) is intentional and clean.
7. License and contribution model
M3-CRETE ships under a dual-license structure that almost no one in 3D printing has bothered to read carefully, so this section is worth your time.
CERN-OHL-W-2.0 for hardware
The hardware design itself (frame, motion system, custom brackets, BOM, firmware configurations) is licensed under CERN Open Hardware Licence Version 2 - Weakly Reciprocal, commonly written CERN-OHL-W-2.0. CERN-OHL-W is the open-hardware analog of LGPL: derivatives of covered files must be made available under the same license, but you can integrate the design into a larger product without infecting the entire product with the license. You can build M3-CRETE printers commercially, sell them, modify the design, and ship that modified design as a kit, provided the modified design files (CAD source, BOM changes, firmware patches) remain available under CERN-OHL-W-2.0.
Why CERN-OHL-W and not, say, MIT or Apache 2.0? Because hardware is not software. A permissive software license assumes that downstream users will keep contributing upstream because the marginal cost of doing so is trivial. Hardware does not work that way. A weakly reciprocal license keeps the design files open without preventing commercial integration. CERN-OHL-W is the closest the open-hardware community has to a battle-tested, lawyer-reviewed, internationally enforceable instrument for this trade-off.
CC BY-SA 4.0 for V-slot CAD
The V-slot component models in CAD/Components/ derive from the OpenBuilds ecosystem, which licensed those models under CC BY-SA 4.0. We preserve that license on the component files and require derivative V-slot models in our repository to remain CC BY-SA 4.0. This is a license-compatibility matter, not a preference. Note that the OpenBuilds company itself dissolved in May 2025; the CAD ecosystem is community-maintained.
How to contribute
Three paths, all on GitHub:
- Pull request, code, CAD, BOM, or documentation changes. PRs run the CADCLAW harness in CI; failing invariants block merge.
- Issue, bug reports, supplier suggestions (the BOM viewer's "Suggest Supplier" button opens an issue prefilled with the part), build experience reports, missing-part findings, license questions.
- Discussion, open-ended technical questions, design RFCs, build logs from the field, requests for collaboration.
Email info@sunn3d.com for kit early-access, lab partnerships, journalist inquiries, or speaker invitations.
8. What we know that's missing or open
Honest open issues are the most credible content on this page. Concrete printers are mechanical systems with hundreds of edges; pretending otherwise is a tell that the documentation has not survived a real build. Below is the current open-issues list, drawn from internal mechanical audits and the most recent CADCLAW field-test report.
Mechanical open items
- Z-carriage versus cross brace clearance, needs CAD verification at maximum Z travel. The carriage geometry is correct in isolation; the question is whether at extreme top-of-travel the carriage clips the cross brace. A small running clearance is the design intent. Pending interference check against the v3 assembly.
- Belt tensioning method, currently unspecified in the BOM. The motor mount slotted holes provide tensioning travel, but the assembly guide does not document the procedure. To be added to the assembly documentation, not the BOM.
- Drag chain end brackets, verify whether the drag chain SKU includes end brackets or whether they need to be added separately. Three drag chains in the build (X, Y, Z); the verification is per-supplier.
- Splice gap interferences, verify that internal connectors at the X-axis splice are flush so V-wheels ride smoothly across the gap. The slot-linking kit sits below the wheel path by design, but tolerance stack-up needs a physical check.
CAD model gaps
- X-axis NEMA23 motor not yet modeled, the CAD assembly currently shows the four Z motors and the two Y motors; the X-axis motor is design-WIP per the project's CLAUDE.md. The X-carriage is described as a "dual plate sandwich, not yet modeled." The CADCLAW harness correctly flags this as a count mismatch, and the finding will resolve when X-carriage modeling lands. This is not a CADCLAW bug; it is a real CAD WIP.
- C-beam spare quantity, the BOM lists reference pieces plus a spare for procurement, while the CAD model shows only the design count. The current rule schema in CADCLAW conflates design count with order count. Fix is in scope for the next CADCLAW milestone via
expected_design_qtyplusspare_qtyrule fields. Rule-level workaround: skip the count check for this label until the new fields land. - Sandwich vs. butt-joint distinction, the validation harness checks dimensions and positions, not mechanical intent. The distinction between "plate sandwiches the rail" and "plate butts against the rail end-face" is structural, not geometric. The human declares intent; the agent executes. This is a documented limitation in the AI-CAD whitepaper.
CADCLAW false-positives (already triaged)
The latest field test surfaced a small set of false-positives on the M3-CRETE BOM that are scheduled for the next CADCLAW milestone:
forbidden_termssubstring matching catches negations and educational mentions. The M3-CRETE BOM legitimately says "do not substitute the belt used on Y/Z here" on the X-belt entry; the substring match flags it despite the negation.claim_audit.stale_termsdoes not distinguish required attribution from stale claims. The README's CC BY-SA 4.0 attribution to OpenBuilds was flagged as a stale-term violation; deleting that attribution would be a license violation.claim.forbidden_absolute "validated"is too aggressive for the default rule. The README's mention of CEMFORGE's training data ("validated 3D-printed cementitious specimen data") was flagged; the sentence describes a third-party service, not M3-CRETE.cad.count_mismatchreports per-rule against the same label, producing redundant findings (separate failures formotor_nema23instead of one aggregated finding).
These are CADCLAW issues, not M3-CRETE issues. The fact that they exist in the current release is documented in the field-test report; the fact that they are not yet fixed is also documented.
Material and process variability
- Cure-time variability, layer cycle times depend on mix design, ambient temperature, and humidity. Closed-loop print speed control from in-situ rheometry is on the roadmap, not in the canonical build.
- Nozzle clogging recovery, the current procedure on a partial clog is to pause, manually clear, and resume. There is no automated clog detection.
- No FEA round-trip, current FEA is a one-way flow: generate STEP in CadQuery, import to Fusion 360, run FEA manually. A round-trip workflow where FEA results feed back into the parametric script is future work.
We document these openly because builders should know what they are signing up for. Closed-source competitors hide identical issues behind support contracts.
9. Get started
Three reader profiles, three paths.
Path A: I just want to read the BOM
Open the interactive BOM viewer. Click through the parts. Toggle suppliers. Select a model variant (M3-1, M3-2, or M3-4). Export a CSV when you want to take it to a spreadsheet. No GitHub login required, no Supabase account, no email gate. The viewer is a static site.
If you want the underlying data, bom/data.json is the source of truth and is human-editable. The schema is documented in config.js.
Path B: I want to actually build one
- Read this page in full. Yes, all of it.
- Read the project README on GitHub and the
AGENTS.mdfile in the repository root, which captures every design exclusion the project has accreted. - Decide which model variant fits your floor space. Default is M3-2 unless your application demands the larger M3-4 or you want a quick prototype on M3-1.
- Export the BOM as CSV from the viewer. Reconcile against parts you already own.
- Place the V-slot order with MakerStore USA or Bulkman3D first. Lead time is the bottleneck.
- Place the Amazon order for fasteners and electronics in parallel.
- Clone the GitHub repository and run the CADCLAW harness against the assembly to confirm everything is current.
- Print the 3D-printed brackets while the V-slot is in transit.
- Build the frame. Tram the Z-axis. Wire the BTT Kraken. Flash Klipper. Calibrate StallGuard4.
- Pair with a pump system. M3-CRETE itself is motion-only; the NemoCrete pump is one option, but you can run any peristaltic or screw pump capable of feeding a 1" Male NPT line at the pressure your mix requires.
- Pair with a mix design. CEMFORGE generates printability-targeted formulations, but you can also start with a published recipe and tune.
- Print. Capture data. Publish to Open3DCP.
If you get stuck, open a GitHub Discussion. Build experience reports are some of the most valuable contributions the project receives.
Path C: I want to contribute
Easiest first issues:
- Run the CADCLAW harness against your local clone and report any new findings.
- Suggest a supplier through the BOM viewer's "Suggest Supplier" button, which opens a prefilled GitHub Issue.
- Submit a build log as a Discussion: photos, timing, what broke, what worked.
- Pick an open invariant gap from the AI-CAD whitepaper's Appendix A and add it to
preview_assembly.py. - Improve a 3D-printable bracket model and PR the STEP plus STL.
Email info@sunn3d.com for partnership conversations or speaker invitations. Sunnyday Technologies is based in Appleton, Wisconsin, and we travel for conference talks where it makes sense.
10. Citations and further reading
Sunnyday Technologies stack
- M3-CRETE repository, github.com/sunnyday-technologies/M3-CRETE, CERN-OHL-W-2.0.
- M3-CRETE live site, m3-crete.com.
- M3-CRETE interactive BOM, m3-crete.com/bom.
- CEMFORGE AI formulation engine, cemforge.ai.
- CADCLAW automated CAD validation framework, cadclaw.io, Zenodo DOI 10.5281/zenodo.19647391.
- Open3DCP open data standard for 3D concrete printing, open3dcp.org, Zenodo DOI 10.5281/zenodo.19647471.
- Sonnentag, N. (2026). Self-Verifying LLM-Driven Parametric CAD Assemblies: Lessons from a Meter-Scale Concrete 3D Printer. Sunnyday Technologies AI-CAD whitepaper, CC BY 4.0.
- Sunnyday Technologies parent site, sunn3d.com.
Selected academic literature
- Chen, Y., Jansen, K., Zhang, H., Romero Rodriguez, C., Gan, Y., Copuroglu, O., and Schlangen, E. (2020). Effect of printing parameters on interlayer bond strength of 3D printed limestone-calcined-clay-based cementitious materials: An experimental and numerical study. Construction and Building Materials, 262, Article 120094. DOI 10.1016/j.conbuildmat.2020.120094.
- An, D., Zhang, Y. X., and Yang, R. (2024). Incorporating coarse aggregates into 3D concrete printing from mixture design and process control to structural behaviours and practical applications: a review. Virtual and Physical Prototyping. DOI 10.1080/17452759.2024.2351154.
- Sharma, A., Sirotiak, T., Wang, X., Taylor, P., Angadi, P., and Payne, S. (2021). Portland limestone cement for reduced shrinkage and enhanced durability of concrete. Magazine of Concrete Research. DOI 10.1680/jmacr.19.00165.
- Tennis, P. D., Thomas, M. D. A., Weiss, W. J., Farny, J. A., and Giannini, E. R. (2024). State-of-the-Art Report on Use of Limestone in Cements at Levels of up to 15%. Portland Cement Association R&D Bulletin SN3148.
- Hooton, R. D. and Riding, K. A. (2025). Type IL cement use in precast, prestressed concrete. PCI Journal. DOI 10.15554/pcij70.2-04.
- Adu-Amankwah, S., Black, L., and Zajac, M. (2015). Effect of Limestone Addition on the Early Age Hydration and Microstructure Evolution of Composite Slag Cements. 14th International Congress on the Chemistry of Cement, Beijing.
Open-hardware tooling
- CadQuery 2.7, Apache 2.0, github.com/CadQuery/cadquery.
- build123d (planned migration target), Apache 2.0, github.com/gumyr/build123d.
- Klipper firmware, klipper3d.org.
- BTT Kraken mainboard, BIGTREETECH.
- OpenBuilds V-slot CAD ecosystem, CC BY-SA 4.0 (community-maintained as of May 2025).
Cite this work
cff-version: 1.2.0
message: "If you use M3-CRETE designs in research or a build, please cite it as below."
title: "M3-CRETE: Open-Source Concrete 3D Printer"
abstract: >-
M3-CRETE is an open-source, buildable, field-serviceable concrete 3D
printer designed for teams that need to replicate, maintain, and scale
independently of proprietary industrial systems. Includes CAD,
bill-of-materials, firmware configuration, and validation tooling.
type: software
authors:
- family-names: Sonnentag
given-names: Nicholas
email: info@sunn3d.com
affiliation: Sunnyday Technologies
license: CERN-OHL-W-2.0
license-url: "https://cern.ch/cern-ohl"
repository-code: "https://github.com/sunnyday-technologies/M3-CRETE"
url: "https://m3-crete.com"
identifiers:
- type: doi
value: 10.5281/zenodo.19647436
description: Zenodo concept DOI (all versions)
keywords:
- 3D-printing
- concrete
- construction
- CNC
- open-hardware
- DIY
- 3DCP
- additive-manufacturing
Zenodo concept DOI: 10.5281/zenodo.19647436, citable identifier for M3-CRETE across all versions. Each tagged GitHub release gets its own version DOI, archived automatically by Zenodo.