Repository navigation
Releases
Materialize 3D 0.2.2
Materialize 3D 0.2.2
Source release notes. Version 0.2.2 adds the in-app updater and fixes bugs found after 0.2.1. It is the first release that installed apps can update from. The Releases page reports distribution status.
Who should update
- Everyone on the 0.2.1 or 0.2.0 Mac app. Install 0.2.2 by hand from its DMG once. After that, later releases arrive through the app.
- Anyone who downloads models from MakerWorld. Downloads now reach Model Library at once, with the right model, files, and numbers.
The app updates itself
At launch, the app checks the latest GitHub release (#78). When a newer version exists, a banner offers Update now or Later.
- Update now downloads the update and checks its signature. It backs up the database and print queue, installs, and restarts. If the backup fails, the update stops and the app keeps running.
- Update now waits for a running CAD build (#86) and a running STL slice (#101) before it restarts.
- Later asks again at the next launch.
- Settings > About shows the installed version and checks for updates on request.
The app reads only releases published as Latest. Drafts and prereleases never reach it.
Other changes
- AI server address. Each AI provider can use a saved server address, such as a gateway, instead of the provider's own server. While an address is saved, you can also enter any model ID (#90).
- Database guard. The app refuses a database with a newer schema than it supports, changes nothing in it, and says how to recover (#87). Versions 0.2.1 and 0.2.2 use the same schema, so a move between them is not refused.
Fixes
- MakerWorld downloads. A download shows in Model Library at once (#76). Each model lists only its own files (#84). A download that finishes after you leave the model page keeps its model, and a second download of a model keeps every file (#98). On macOS, two overlapping downloads of the same file URL still cannot be matched when they finish, so neither reaches the Library (#116).
- MakerWorld numbers. The panel shows the real rating, review count, downloads, and print files (#77).
- API keys. A typed but unsaved API key no longer follows a provider switch in Settings (#96) or in onboarding (#114). Chat hides an API key that an error reply quotes in encoded form, and a failed chat turn writes a safe line to the app log (#100).
- Contrast. Disabled button text meets WCAG AA contrast (#109).
- Linux source builds. One failed download no longer fails every later download in the session. The app moves to Tauri 2.12 for this fix (#105). Overlapping downloads of one file URL each land in their own file (#115).
Requirements and limits
Requirements are the same as 0.2.0. The 0.2.0 release notes list them. The database schema does not change, so an update keeps your signs, parts, approvals, and history. The CAD runtime does not change either.
Installation
Download Materialize-3D-0.2.2-macos-arm64.dmg and its .sha256 file from the published release. Follow the Mac install guide. Compare the downloaded DMG's full checksum with the checksum file, and stop on a mismatch.
shasum -a 256 ~/Downloads/Materialize-3D-0.2.2-macos-arm64.dmgTo update from 0.2.1, quit the app and replace it in Applications with the 0.2.2 app. Your data and Keychain items stay.
Release record
- Tagged source commit:
ce33b74a686aa701d7275326d7c3c0b8f6254831 - DMG SHA-256:
df04ad2f7a74ccafab715745a8f752d0fb7160822f8c1f97bc91245775532205 - Update archive SHA-256:
92c18e18f1f50531b61bd00c7f6a2c688b0394ad69c7e65f80189e1d03074713 - Built on an Apple Silicon Mac by
scripts/release/build-macos.shfrom the clean tag, signed with the Developer ID Application identity of team 8A4Y276VK7. Apple notarized and stapled the app and the DMG.
Checks run on this build: the build script's Gatekeeper, staple, architecture, e2e-harness, and exact bundle checks, on the app and on the unpacked update archive. The update signature verifies against the public key in tauri.conf.json and names version 0.2.2.
Checks not run for this release: the installed GUI checklist, the clean-install and installed-release scripts, and physical print acceptance. No software acceptance record is attached. The owner approved publication on 2026-11-03 without them.
Materialize 3D 0.2.1
Materialize 3D 0.2.1
Source release notes. Version 0.2.1 checks the printer's certificate, updates libraries with known security problems, and fixes bugs found after 0.2.0. It adds no features. The Releases page reports distribution status. Publication requires an attached software acceptance record for the exact final DMG. These source notes define changes and gates, not completed acceptance results.
Who should update
- Everyone on the 0.2.0 Mac app. The local MQTT connection now refuses a device whose certificate does not pass the Bambu root and printer serial checks. File upload over FTPS does not check the certificate yet. The app and its bundled CAD runtime replace library versions that have published security advisories.
- Anyone who runs Materialize 3D from source on Linux. Credentials now survive a reboot, but you must enter them again once. See Linux credentials move to the Secret Service.
Security updates
The app checks the printer's certificate
In 0.2.0, the local MQTT connection to the printer accepted any TLS certificate. Any device on your network could pose as the printer and receive the LAN access code and every print command. In 0.2.1, the app accepts the printer only when its certificate chains to Bambu's printer root certificates and names the printer's serial number (#66). The cloud connection does not change.
- The saved serial number must match the certificate exactly. A serial saved in lowercase or with a trailing space now fails to connect with an error. Such a configuration already listened on a topic the printer never uses.
- Tests check public certificate samples from a P2S and from the older printers that use
BBL CA. H2D, H2S, and X1E chains have no sample. A printer whose chain the app does not cover fails to connect with an error. - File upload to the printer over FTPS still accepts any certificate. Issue #65 tracks the fix.
Library updates
| Library | 0.2.0 | 0.2.1 | Where it runs | What the update fixes |
|---|---|---|---|---|
zip (Rust) |
2.4.2 | 9.1.3 | The app, when it reads and writes 3MF packages | Three advisories. One is critical: a crafted archive can show different file names and contents to different readers (GHSA-m665-v7pm-7grj). The others let a crafted archive crash the process that extracts it, or skip the check on an encrypted entry. |
rumqttc (Rust) |
0.24.0 | 0.25.1 | The app, when it connects to a printer | Printer connections now use rustls 0.23.46 and rustls-webpki 0.103.15 instead of rustls 0.22.4 and rustls-webpki 0.102.8. rustls 0.23.46 also fixes four rustls advisories, one of them medium. |
| Pillow (Python) | 12.3.0 | 13.0.0 | The bundled CAD runtime | 41 advisories: 5 critical, 23 high, and 13 medium. Most are memory errors and denial of service in image decoders. |
| certifi (Python) | 2026.7.22 | 2026.10.23 | The bundled CAD runtime | Stops trusting the emSign ECC Root CA - G3 root. Eight intermediate certificates under that root have compromised keys (GHSA-6q48-6c7w-9gw2). |
| Vitest | 3.2.4 | 4.1.12 | Development only. The app does not include it. | A path traversal that lets the test server read any file (GHSA-82fw-gwwq-j7x9). |
The new zip writes the same bytes as before. A test compares three sign packages against stored hashes, and it passes on zip 9.1.3.
Known items that stay in 0.2.1:
rumqttc0.25.1 still compiles inrustls-webpki0.102.8. Printer connections do not use it to check certificates. Its four alerts are dismissed as not used.- Alerts for
rand0.7 andglibare dismissed as tolerable risk.
Fixes
- Printer setup. First-run setup now saves the printer address, serial number, and access code that you enter. In 0.2.0 it sent empty values and called a command that did not exist, so setup failed.
- Print history. Saved prints appear again after a restart, and successful prints show their Success badge. If the app cannot read the history, it shows an error instead of an empty list.
- Launch crash. The app no longer crashes at launch when auto-connect is on and a default printer is saved.
- Test isolation. For developers, the Rust tests no longer overwrite the real print queue file.
Linux credentials move to the Secret Service
Materialize 3D has no Linux release build. This section applies only when you build and run it from source on Linux. On macOS, credentials stay in the Keychain and nothing changes.
Linux builds now store API keys, printer access codes, and the MCP token in the Secret Service. Earlier builds kept them in the kernel keyutils keyring, which empties at every reboot.
- You need a session D-Bus and an unlocked Secret Service provider, such as GNOME Keyring, KWallet, or KeePassXC. Without one, every save or read of a credential fails with an error.
- After you update, enter your API keys and printer access codes again. The app does not copy old keyutils entries. Saved printer configurations stay.
- If you use the MCP endpoint, the app creates a new token. Give the new token to each agent that connects.
Requirements and limits
Requirements are the same as 0.2.0. The 0.2.0 release notes list them: Apple Silicon with macOS 26.0 or later, Bambu Studio 02.08.02.61, an OpenAI or Anthropic API key, and a Bambu Lab P2S with a 0.4 mm nozzle. The app database keeps the same schema, so an update keeps your signs, parts, approvals, and history.
Required publication evidence
Before publication, the release owner must complete the release procedure and attach its software acceptance record to the release. The record must cover every item in the 0.2.0 evidence list for the final 0.2.1 DMG. The release body and the record must identify the exact tagged source commit and the final DMG checksum. Keep those values out of tracked source.
The CAD runtime changed in this release. The arm64 runtime must come from the tagged commit's CAD runtime workflow run, or from a rebuild that matches the new cad-runtime/pins-arm64.json. The 0.2.0 runtime fails the build script's pin check.
Physical acceptance remains pending until Ossie records an actual print and inspection. Only Ossie decides to print.
Installation
Download Materialize-3D-0.2.1-macos-arm64.dmg, its .sha256 file, and the software acceptance record from the published release. Follow the Mac install guide. Compare the downloaded DMG's full checksum with both the checksum file and the record. Stop on a mismatch or missing evidence.
shasum -a 256 ~/Downloads/Materialize-3D-0.2.1-macos-arm64.dmgTo update from 0.2.0, quit the app and replace it in Applications with the 0.2.1 app. Your data and Keychain items stay.
Release build
- Source: tag
v0.2.1, commit05819dff63c7dcbe911ba822fe95e41c9ef85026 Materialize-3D-0.2.1-macos-arm64.dmgSHA-256:826bd29414cd188c76fb6a8ce0ac7a3e6d89c6fc3d4f9744b7ce5075a1a01ebd- Signed with Developer ID (team 8A4Y276VK7), notarized, and stapled.
software-acceptance.mdrecords the scripted install checks, which passed. The installed GUI checklist with OpenAI, human approval, and native Save was not run for this release. The approved P2S acceptance exports are not attached. Physical print acceptance is pending.
Materialize 3D 0.2.0
Materialize 3D 0.2.0
Version 0.2.0 adds general parts to the signs-only 0.1.0 release. The signed and notarized Apple Silicon app bundles its CAD helper and pinned runtime. It needs macOS 26.0 or later, Bambu Studio 02.08.02.61 and your own OpenAI or Anthropic key. The demonstrated GUI flow used OpenAI GPT-6 Astra.
The app footer now uses the canonical package version. Release checks verify signing, helper identity, runtime bytes and bundle contents. CAD guidance now explains that local wall probes cannot certify the whole part.
Tag v0.2.0 names merged commit 5b4bc7ce31781dece0e5f7a8631d769067c61071.
DMG SHA-256.
a815781c505ecca40b28e6c4192fbda1e459a86c89e16a1c989e800a6a39973d
Download Materialize-3D-0.2.0-macos-arm64.dmg, its .sha256 file and software-acceptance.md. Compare the full checksum before opening the DMG. The attached record and software-evidence.zip contain the exact installed GUI, clean-install, approval, native export, failure recovery and Bambu P2S 0.4 mm slice results. Separate MacBook headless checks passed after a preserved teardown failure and approved cleanup. GUI checks used fresh isolated data under the Mini's existing console login. They do not establish fresh-account or independent-machine GUI behavior.
Both software-verified example exports are attached.
| File | SHA-256 |
|---|---|
| Acceptance-Sign-P2S.3mf | 647586d5929f05a08b9bc407f84e84ebcfc5c431d41b5ef729844d4f851004d2 |
| Acceptance-Desk-Clip-P2S.3mf | 6cead7fd008b4f05941e32a03bba7f6ee0d49d34b156f4b9daa2dd6791c802c4 |
The sign is 150 by 210 by 2.6 mm, BACK SHORTLY in navy on white with a teal rule. All three colors appear on the bed-facing first layer. Bambu showed a prime tower recommendation.
The clip is 60 by 25 mm with an 18.4 mm jaw and six 4.4 mm cradles. Its rounded lower tip meets 3.000 mm with no spare thickness. Directional wall bounds passed. It sliced with its back on the bed, supports disabled and one used filament. No physical fit, strength or support-free print result is claimed. Earlier failed rehearsal candidates are excluded.
Watch the reviewed builds, external GUI approvals, native Saves and Bambu slices in PR 48. Repeat Save proof uses exports/proof and retains the canonical bytes. The part build video is at 2x speed. Sign Save and slice clips remove idle time and show actions at real speed.
Earlier personal-app preservation uncertainties remain disclosed in software-acceptance.md. No raw desktop captures or keychain material are distributed.
Physical acceptance remains pending. No print was started. Only Ossie decides to print. physical-acceptance.md contains the optional procedure for the exact exported hashes. The release owner verifies actual published downloads after publication before claiming delivery complete.
Materialize 3D 0.1.0
Materialize 3D 0.1.0
The first public release. Materialize 3D turns a conversation into a print file you can check and approve before it leaves the app. This release does one workflow end to end: three-color signs for the Bambu Lab P2S.
What works
- Describe a sign to the in-app assistant (Anthropic or OpenAI, with your own API key).
- The app builds a face-down, three-color sign package and slices it with Bambu Studio 02.08.02.61 using P2S 0.4 mm presets.
- 27 automated geometry and slice checks, including first-layer coverage for each color.
- You approve the exact package by its SHA-256 hash. The assistant cannot approve, and any change makes a new revision that needs its own approval.
- Export a 3MF through the macOS Save dialog, then open and print it from Bambu Studio.
- An optional local MCP endpoint, off by default and loopback only, for other agents. It cannot approve either.
Requirements
- A Mac with Apple Silicon. Tested on macOS 26.7. The app declares macOS 13 as its minimum; macOS 13 to 15 are untested. No Intel, Windows, or Linux build is offered.
- Bambu Studio 02.08.02.61 from Bambu Lab, installed separately. Materialize 3D does not include it.
- An Anthropic or OpenAI API key. The provider bills each request at its own rates; the app is free.
- To print: a Bambu Lab P2S with an AMS and three filaments.
Install
Download Materialize-3D-0.1.0-macos-arm64.dmg, open it, drag Materialize 3D into Applications, and open it. The app is signed with a Developer ID and notarized by Apple. The full guide, including Bambu Studio setup, is docs/install-macos.md.
Check the download against the attached .sha256 file:
shasum -a 256 ~/Downloads/Materialize-3D-0.1.0-macos-arm64.dmgHow this release was checked
The DMG was built from the tagged commit by scripts/release/build-macos.sh, which signs with the hardened runtime, notarizes and staples the app and the DMG, and checks Gatekeeper acceptance, the architecture, the absence of the test harness, and the exact contents of the app bundle. The installed app then passed Gatekeeper as a notarized download, migrated existing data, kept the MCP endpoint off by default, stored and reread its own keychain credential, and built the acceptance sign with all 27 checks passing.
Physical printing is not part of these checks. A printed test sign is a separate acceptance step (docs/acceptance/p2s-test-sign.md), and no print result is recorded on anyone's behalf.
Known limitations
- Signs only, on the P2S with a 0.4 mm nozzle.
- Materialize 3D does not send jobs to the printer. You print from Bambu Studio.
- Earlier tools in the app (model library, 3D preview, MakerWorld browser, OpenSCAD editor, print monitor, print history) are not part of the validated workflow.