Materializr
com.materializr.app
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
First release: Aug 3, 2026, 7 total releases.
Most recent release: Sep 27, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Sep 27, 2026 1.7.1# Materializr 1.7.1 A follow-up to 1.7.0: more AI Assistant tools, Assembly Mates polish, Items panel workflow improvements, and a batch of stability fixes. ## Added - **AI Assistant grows to 17 tools** — new: describe the scene, extrude a sketch, pattern a body, add a construction axis or plane, and mirror/copy/delete/separate/align a body. The chat overlay no longer pops
More…
open on its own when the app starts. - **Assembly Mates**: the Mate button now shows up on cross-body face picks, with a confirmation step before it creates the mate. - **Items panel**: drag-and-drop reorder for bodies and folders; send a body straight to an already-open tab; sketches get "Export to New Project" and "Send to Open Project." - **Lathe** is now offered whenever a closed sketch region is selected, not just a whole sketch. - **Move Face**'s Slide panel gets typed, steppable A→B offsets; the Section View offset dialog gets fine-adjustment stepper buttons. ## Fixed - STL export: mesh generation falls back through Watson before Delabella, and escalates deflection further if a face still comes out bare — fixes holes and gaps in exported meshes. - Gizmo: the body-rotate ring no longer reports wild angles when dragging near the pivot. - Sketch dimension solver: remembers which side a dimension was placed on, and stops resizing or losing the radius of arcs it shouldn't touch. - Sketch: invalid multiply-connected regions now rebuild themselves via a boolean cut instead of staying broken. - Patch no longer asks GeomPlate to rediscover a boundary that was already flat. - Push/Pull refuses a cut that would consume an entire body outright. - Items panel: colour changes now mark the project dirty; the folder colour swatch no longer clips off-panel. - Dirty inactive tabs now autosave quietly on a clean exit. - Closed a couple of data-loss/desync gaps in the mid-sketch autosave path. - Windows build now catches OCCT faults instead of silently swallowing them, improving crash diagnostics. - Sep 20, 2026 1.7.0# Materializr 1.7.0 Talk to your model in plain English, work in the units you actually think in, and mate two parts together so moving one carries the other with it — plus a long list of freezes, stalls and silent data-loss bugs stamped out along the way. ## Talk to your model A new AI Assistant panel — desktop only, and entirely opt-in — turns a
More…
plain-language request into real, undoable geometry. "Make a 20mm cube with a 5mm hole through the center" becomes an actual box, an actual cylinder, and an actual boolean cut, each landing in your History exactly like you'd built it by hand, so Ctrl+Z undoes it the same way. Bring your own key: point it at Anthropic, at OpenAI, or at any OpenAI-compatible endpoint — including a local Ollama or LM Studio server, so nothing needs to leave your machine. A Test Connection button in Settings confirms your setup works before you ever open the chat. The assistant isn't limited to primitives. It can look up what's already in your project and what you've selected, add and transform bodies, run booleans, push and pull faces, extrude sketched rectangles, circles and arbitrary polygons, loft between profiles, fillet or chamfer a single edge or every edge on a face or body, shell a body, mirror, duplicate, pattern and delete bodies — and take its own screenshot of the viewport mid-task to check its progress against a reference model you supply, correcting course within a bounded number of steps. Replies and reasoning stream in live rather than sitting behind a static "Thinking…" label, and a Cancel button stops a request that's taking too long, which happens on modest local hardware. Your API key lives only in your local settings file — it's never included in an exported settings backup, and never goes anywhere but the provider you configured. ## Work in the units you think in Settings now has a display unit — millimetres, centimetres, metres, inches or feet — and it applies everywhere a length shows up: every field, every dimension, every caption, and the sketch grid itself. Type "2 in" for a hole and skip the mental math; read a large assembly's bounding box in feet. Nothing about the model, the saved file, or the scripting API changes underneath — only what you see and type does. One real behavior change came out of building this: the sketch grid now scales with zoom, the same way Fusion 360 and Onshape do, so snapping stays sensible whether you're zoomed into a bolt hole or zoomed out to a whole assembly, instead of snapping at a fixed distance that becomes invisible at either extreme. ## Assembly Mates Position one body against another and keep the relationship. Pick the reference body first, then the one that should move, and hit Mate — two round faces infer Concentric, two flat faces infer Planar, anything else falls back to Fasten, and every inference is overridable afterwards. Moving the reference, by any operation or by another mate, carries everything mated to it along with it; the first body you reference becomes the assembly's grounded root. Mates persist through save and reload and survive undo/redo of whatever moved a mated body. ## Also in this release A long list of performance and correctness fixes, most found by profiling real, heavy projects: - Editing operations that used to freeze the window on a many-hole or many-body project — Move Face, Push/Pull, Shell, Draft, Scale Face, Fillet and Chamfer previews, and general viewport re-meshing — now run their heavy work on a background thread and stay responsive while you drag. - Opening a large project, hovering over a detailed part, and most sketch edits or menu operations no longer re-tessellate the whole project; several of these measured 90%+ faster. - Section View no longer runs a full geometry boolean per plane move, and meshing a body with many small holes is roughly 13x faster. - A malformed or truncated STL import no longer silently reports success. - An exported STL could fold in on itself near a fillet or fine thread; the underlying mesh-weld pass now checks against real model edges before merging vertices. - Sew and Split could each silently drop whole bodies on unusual input instead of failing with an explanation; both now refuse cleanly. - Trim and Select+Delete could each corrupt a sketch polygon's bookkeeping, leaving a gap that survived save and undo; both now cascade to the whole polygon correctly. - A crash-recovery snapshot from an unrelated, separately-crashed window could overwrite a tab you were actively working in. - "Autosave" was a periodic full-fidelity save that could stall the UI for seconds; it's now a single save right before the project closes, including when quitting via the window's close button. - Importing a STEP or IGES file could freeze the window for several seconds on a large assembly; import now runs the same background path project load already uses. - Idle viewport framerate on a 400+ body project is roughly 50% higher. - A spline endpoint placed on a curve, or a loop closed right on its own start point, could save measurably off target under certain settings; both are now exact. - Push/Pull could reach past its own guard and target an imported STL mesh body it should have refused. - A Fillet or Chamfer could enter a blend that couldn't be cancelled if the radius turned out to be infeasible. - Dimension labels can now be dragged to reposition them. - Unofficial FreeBSD build support, alongside Linux, Windows and macOS. - Sep 5, 2026 1.6.4# Materializr 1.6.4 Direct face editing, surface repair tools, aerofoil import, and a much faster open on modest machines. ## Repair imported and broken geometry Four tools that make wrong geometry right again are now gathered in one place — a **Repair** group on the modern and touch rails, a Repair section in the classic toolbar.
More…
- **Patch** fits a single surface across a ring of picked edges. Where those edges bound an opening in a body, the patch is sewn back in and the body closes again; where they don't, it lands as its own surface, which is what you want for bridging geometry. The patch can run tangent or curvature- continuous into the faces the edges came from, and the panel reports the gap and tangency it actually achieved — if the surrounding walls stand square to the opening, no tangent surface exists there and it says so rather than handing you a flat lid labelled tangent. - **Sew** joins loose surfaces into a solid. Select any mix of bodies and it returns either a closed solid or the joined shell plus a count of the edges still open — that count is how many gaps are left to patch. It picks the tightest tolerance that closes rather than the loosest that works, so edges that were meant to stay separate don't get welded together. The result keeps the first selected body's name, colour and folder. - **Remove Feature** is the tool that used to be called Repair Geometry. It never was a general fixer: it deletes the picked face and heals the neighbours over the gap, which is how you take a baked fillet or chamfer back to a sharp edge. The new name is what it does, and it's the History label too. Translated in all five languages. - **Merge Faces** joins the group instead of sitting at the end of the catalogue. Patch's panel is usable with a finger now — real number entry instead of sliders, so the tolerances you reach for when a fit refuses can actually be typed, and full-size Apply/Cancel buttons. ## Move a face without shearing the whole part Move Face → Rotate gains a **Local (rebuild neighbours)** checkbox. Off is today's behaviour: the body is sheared, so a hole inside the part leans along with the face. On re-solves the corners of the moved face and rebuilds only the faces that meet it — everything else stays exactly where it was. The bore in a part keeps its axis; the base stays on its plane. Both readings are legitimate — tapering a part wants the shear, straightening a boss wants the rebuild — so it's a choice, defaulting off, and each replays from history as the thing you actually picked. Neighbouring faces may be curved (a cylinder's lid, a bore's seam); the face being moved must still be flat, and when a case is out of scope the panel says why in plain words instead of quietly falling back to the shear. ## Aerofoil sections import into a sketch Sketch toolbar → **Airfoil**: pick a coordinate file from airfoiltools.com or UIUC, set the chord in millimetres and a point budget, then click to place it. Both file dialects in circulation (Selig and Lednicer) are accepted and auto-detected, since you can't reliably tell which one you downloaded. Headerless files and Windows line endings parse fine, and files are filtered by content rather than extension — `.dat` means nothing on its own, so the parser decides and refuses a non-aerofoil file with a reason. The coordinates become interpolating splines that pass through every published point. A blunt trailing edge is measured and bridged with a straight segment rather than silently welded shut — a knife edge can't be printed or machined. Choose whether the click lands on the **leading edge, the quarter chord or the centre**; the section also pivots about that point, so setting an incidence angle rotates it where you placed it instead of swinging it away. The panel shows the section's name, thickness and camber, which is the fastest check that it parsed as the shape you expected. ## Offset a sketch chain The 2D cousin of Shell, and the tool people coming from Fusion or Onshape kept reaching for. Hover an edge and the whole connected chain highlights; click, then the cursor sets both the distance and — by which side of the profile it's on — the direction. Type a number instead and it pins the distance while the cursor still picks the side. Corners are rounded or mitred, and geometry that folds inside the offset band is dropped rather than emitted as self-intersecting debris. Splines are included, because an aerofoil section is two splines and a line — offset control points are capped so a five-point curve doesn't come back as forty. When nothing valid survives, the tool refuses and says why. ## Sketch guides - **Corner guides.** A vertex where two segments meet now publishes the two directions it genuinely defines: the bisector between the lines (the mitre direction, and the axis anything symmetric about the corner sits on) and the smooth tangent through the three points. From sketch lines and referenced face edges alike. - **A snap can refine a placement, never redefine it.** Two guides that each fired within their own tolerance could intersect far away when nearly parallel, and that crossing then won outright — so a 2 mm line placed fine while 1 mm and 3 mm were unreachable. A snap may now move a placement by at most a quarter of what you've drawn so far. - **Diagonal guides are honoured exactly with snap-to-grid on.** The grid used to round a diagonal guide's result off its own ray — up to 8 degrees of error on a short leg, while the guide still highlighted and claimed the exact angle. The guide you aimed down now wins and the grid takes the freedom that's left. ## Reference images are a property of a plane A reference image was always a construction plane carrying a picture, but the import hardcoded its host to the ground plane at the origin — every other pose meant importing and then hand-dragging the gizmo. The construction-plane dialog now carries the option. Tick it, pick the file, and the photo attaches to the live preview plane so it's visible while you're still setting the alignment, offset and rotation — with size, opacity and Calibrate inline in the same dialog. Every plane derivation the app has (offset, parallel to a face, midplane, normal to an axis, tangent) is available to it, and any existing plane can take one from its properties. Offset is a stepper row that can land on 12.5 mm, and rotation is three absolute X/Y/Z fields applied together, so pressing Enter twice can't double the angle. Rotating a plane and then nudging its offset no longer discards the tilt. The standalone rail button is gone — it could only ever make a ground plane at the origin. The command stays registered, so old muscle memory and scripts still find it. ## Opening a project on a slower machine A 52-step project that took **24.4 seconds** to open on a 4-core laptop now takes **14.6**, and — more to the point — the window answers the desktop throughout instead of being offered for force-quit. The longest stretch with no response drops from 24.5 seconds to 1.4. Two causes: one boolean in the reload path had never been made parallel or time-boxed, and the replay never came up for air between history steps. The progress display backs off from its own cost, so it can't make a slow load slower on a machine where drawing is expensive. ## Fixes - **Orbit and pan could stop working for the rest of the session** after tilting a face and then switching projects — the ViewCube kept working, which made it read as a broken mouse. An operation that ends while it still holds the viewport's drag latch now releases it. - **Recovered in-progress sketches come back in the right tab**, and two copies of the app running at once no longer overwrite each other's only draft. The draft now uses the same per-instance slots the project snapshots already had. - **Project files can no longer hang or over-allocate on a bad length.** A negative count in a shared file could wrap the bounds check and spin forever while growing without limit. Every length-prefixed field is now parsed unsigned and bounded, and over-budget input is refused rather than partially read — a half-imported file would come back as geometry you never drew. (#85) - **A startup failure now says something.** OCCT's exceptions aren't standard C++ exceptions, so a machine with no usable OpenGL driver killed the process before the window appeared with no message at all — exit `0xE06D7363` on Windows, silence on Linux. Caught now, with the underlying message and a pointer at `--safe-mode` and driver updates. - A parameter named `near` is a compile error on Windows only; caught before it broke a build. ## Notes - Android sideload APKs (arm64-v8a, x86_64) attached; F-Droid builds from the tag. - Translations remain machine-drafted — native-speaker corrections very welcome, especially the new Repair tool names. - Aug 29, 2026 1.6.3# Materializr 1.6.3 **Windows users: this release fixes the startup crash in 1.6.1 and 1.6.2.** Both releases could exit silently before showing a window (#82) — a logging setup call that Windows' C runtime rejects. If you pinned 1.6.0, it's safe to update. The packaging pipeline now launch-tests the packaged exe so this class of crash can't ship again. Thanks to the reporter for narrowing it to 1.6.0. ## The interface now speaks Spanish, Portuguese, French, German and Italian
More…
Pick your language on first run — the Getting Started tour opens with a language page, each language listed in its own name — or switch any time in Settings → Appearance. Changes apply instantly, no restart. Menus, tools, tooltips, panels, dialogs and settings descriptions are covered. The translations are machine-drafted against a CAD glossary (fillet = redondeo / congé / Verrundung…) and have not yet had native-speaker review — corrections are very welcome, especially on trade terminology. ## Sketching - **Arcs take typed dimensions** like circles and rectangles: type the chord, then a swept angle (180 = semicircle) or a radius — Degrees/Radius toggle in the input dialog, minimum radius shown and enforced. The cursor still picks which way the arc bows. - **Drawing guides now work in every tool** — arcs, two-point circles, polygons and splines get the angle snap, tangent, perpendicular/parallel and alignment guides that lines always had, measured from the point being placed. - **Tangents work from the curve itself**: start a line on a circle and draw off tangentially, or continue tangent from an arc's end. Splines can be tangent references; arcs honour their real span; with several curves in range, the guide picks the one you're aiming at. - **The sketch grid on round faces lines up with the world.** A keyway flat or slot side no longer rotates the grid on a face that's circles by any sane reading. ## Modeling (community + fixes) - Loft: tip-split sampling, faces as sections, bridging into the host body. - Extrude/boolean operations are time-boxed — pathological cases cancel instead of hanging. - STL export welds and repairs the mesh so slicers stop rejecting prints. - Merge Faces: linear tolerance added, and refusals now say why. - Lay Flat on Plane from a right-clicked planar face, and for sketches. - A union that comes back smaller than its largest input is rejected as the data loss it is; Union/Intersect failures show a message instead of silently doing nothing. ## Notes - Android sideload APKs (arm64-v8a, x86_64) attached; F-Droid builds from tag. - Translations: native-speaker review welcome — open an issue or PR against tools/i18n_catalogue.py. - Aug 23, 2026 1.6.2A maintenance release: sharper on high-DPI screens, a boolean bug that could make Union appear to do nothing, and sketch dimensions that hold where you put them. ## Improved **High-DPI Linux is detected, not configured.** The interface scale used to be a manual Low/High setting with a first-run prompt. It is now measured from the display, so the app comes up the right size on a HiDPI laptop with nothing to set. The mouse cursor and the initial window size follow the same scale, so the
More…
pointer is no longer a speck and the toolbars are no longer jammed against the viewport. `--ui-scale` still overrides it if you want a specific number. **Interface elements scale with it.** Buttons across the dialogs sized themselves in fixed pixels while their text grew with the interface scale, so labels ran past their own edges at 2x. The ViewCube, its rotation arrows, the Home button, the axis triad and the snap widget had the same problem in reverse — they stayed small while everything around them grew. All of them now follow the interface scale. **The app lets your screen sleep.** Materializr was holding the display awake for as long as it was open, which on a laptop meant a flat battery instead of a suspended machine. It now idles out like any other application. ## Fixed **Union and Intersect could silently do nothing.** On some geometry a cosmetic step that merges seam faces after a boolean would corrupt the result — changing the volume of the part and leaving it invalid. The operation then threw away a perfectly good result and reported nothing at all, so the button looked dead. That merge is now discarded whenever it changes the part, and a boolean that genuinely fails says so instead of failing in silence. The same protection covers Push/Pull, Extrude, Scale Face, Move Hole, Resize and Merge Faces. **Sketch dimensions stay where you put them.** A dimension now remembers which side of the line it was placed on and holds that side, instead of letting the sketch mirror itself and jump back later. Arcs no longer lose their radius or oscillate between solves, and an arc's degrees of freedom are counted properly, so a fully-pinned arc no longer reads as over-constrained. **Trackpad navigation in sketch mode.** With trackpad navigation enabled, Shift+drag now pans the view instead of drawing a sketch element at the same time. **Reference images** draw in front of the model rather than underneath every body, so a photo you are tracing over stays visible. **Android builds.** A display-scaling change did not compile for Android, which would have left this release with no F-Droid build and no APKs. - Aug 17, 2026 1.6.1## Release description Materializr 1.6.1 is a polish release, but two things moved and are worth knowing before you go looking for them. **Taper is now called Draft.** Same operation, better name — it is the moulding-draft tool (several faces at one angle about a fixed neutral plane, and it works on curved walls where Rotate isn't offered at all). Saved projects are unaffected.
More…
**The tool rails regrouped.** Move, Rotate and Scale are one **Transform** flyout; Duplicate, Mirror, the patterns and the splits are one **Multiply** flyout. **Split** is now a single tool with a ghost plane showing where the cut lands and an offset you can slide, instead of three blind X/Y/Z buttons. And with a face selected, **Scale** is gone — it and Scale Face were measurably the same operation, so there is one of them now. New: **Merge Faces**, for the seam lines that run across an otherwise flat face on an imported STEP part, and **Move a hole** — grab a hole's rim edge and tilt the bore, reshape it, or slide the whole hole across the face it pierces. **Subtract from a sketch actually works now.** It used to do nothing at all unless the sketch was still linked to the body it was drawn on; it now cuts whatever the swept profile runs into, and can optionally cut every body it passes through. Sketching got a round of corrections: a typed value beats the snap grid, a rectangle drawn from its centre no longer doubles a typed width, the grid on a face follows the world instead of the longest edge, and a point placed on a circle stays on it. **Windows builds are fixed** — they had been broken since the hole work landed. ## Changelog ### Added - **Move a hole.** Select a hole's rim edge and drag: one rim tilts the bore, one straight side reshapes it, both rims slide the whole hole across the face it pierces. Clicking the bore wall itself also offers Move, for the slide-the-whole-hole case. The selection picks the verb, and the drag previews the verb it will commit. - **Push / Pull and Extrude are both offered for a sketch**, whichever it is attached to. A sketch drawn on a face used to offer only Push — exactly when "make this a separate body instead of fusing it" is what you want. Attachment now picks the ORDER of the two, not which one exists. - **Lathe on a selected sketch in the classic layout.** It had always been there in the modern and im-touch rails. - **Merge Faces**, for the seam lines that run across an otherwise flat face on an imported STEP part — which also confuse Unfold and sketch-on-face, because what looks like one panel is several faces. Two ways in, and they try different amounts. Select a **body** and it merges only what is exactly coplanar, which is safe to point at a whole part but leaves the near-miss seams alone. Select **two or more faces** and it merges just those, and because you have said which faces are one it can accept planes that are a fraction of a degree apart. Either way the result is checked for validity and for volume before it is kept, so a merge that would reshape the part is refused rather than applied. New parts should not need it: the modelling ops no longer leave these seams behind in the first place. ### Changed - **One face-scale tool, not two.** With a face selected, Scale and Scale Face were the same operation — measurably so: a 20mm box top scaled to 50% came back as the identical frustum either way, because Scale was Scale Face with the blend length pinned to the full depth, which is already its default. Scale is gone from the face tools; if you press it (or R) with a face selected you get Scale Face. Shortening the blend length, so the taper stays near the face instead of running from the base, is the thing that was only ever reachable through one of the two buttons. - **Split is one tool with a ghost plane, not three blind buttons.** Split X, Split Y and Split Z each cut through the body's bounding-box centre and gave no way to see where the cut would land or to move it. There is now a single **Split**: pick the axis, slide the cut off centre, and a translucent plane in the viewport shows exactly where it goes before you commit. The offset is clamped inside the body, since a plane that misses produces a history step that did nothing. The underlying op always accepted an arbitrary plane — only the buttons ever assumed the middle. - **Two rail groups: Transform and Multiply.** Move, Rotate and Scale are now one **Transform** flyout, and Duplicate, Mirror, the patterns and the splits are one **Multiply** flyout — everything that changes how many bodies you end up with. "Transform" previously labelled the copy-and-mirror group, which is why the actual transforms had nowhere to live. Modern and im-touch rails only; the classic palette already headed that trio "Transform" and is unchanged. - **Taper is now called Draft.** It reads as a weaker Rotate under the old name, and for one flat face that is nearly true. It is the moulding-draft operation: several faces at one angle about a fixed neutral plane, and it works on curved walls, where Rotate isn't offered at all — a cylinder drafts into a cone. The tooltips now say so. Saved projects are unaffected. - **Previews no longer appear in the History panel.** Pattern, Loft, Boundary Fill and the two construction popups used to add a real, undoable step the moment their panel opened, and take it away again on each change — so Ctrl+Z reached into the middle of a gesture and the panel listed a step you hadn't committed to. History now stays put until Apply. - **Scale Face is one control that grows and shrinks**, instead of asking you to pick a mode first, and it no longer offers a range the chosen mode can't deliver. - **Imported meshes are reference bodies.** Sketch on them and snap to them, but modelling ops decline them with an explanation rather than producing broken geometry. - Saving no longer pays for compression that bought almost nothing — large projects write faster. - **Subtract can cut every body it passes through.** A checkbox on the Subtract panel ("All bodies" on touch). Off, it cuts one body — the one the sketch sits on when it has a host. On, a profile driven through a stack cuts each body it reaches, one undoable step per body. Off by default: a sketch drawn on a face means that face's body, and carving a neighbour it merely overlaps would be a surprise. ### Fixed - **The sketch inference level is reachable on touch.** It was in the tool catalogue all along, but only inside the "More" flyout at the bottom of a dock that scrolls once the sketch tools outgrow the screen — so on a tablet it sat below the fold and read as missing. It now has a permanent Inference button in the top bar during a sketch, beside snap, the way the other two layouts have always had one. Tap to cycle Full → Reduced → Off → Max. - **Tool banners are no longer hidden behind the touch layout's chrome.** The "EXTRUDE — drag in viewport…" line sat at a fixed offset inside the viewport, which in the touch layout is underneath the floating logo, menu and project chips: the visible half read "EXT… Escape to cancel", and the half that vanished was the one naming the gesture. Banners and transient messages now start below whatever chrome the layout floats over the viewport. - **Subtract from a sketch is no longer a button that does nothing.** It cuts what the profile actually runs into, instead of insisting the sketch still be linked to the body it was drawn on. A sketch on a construction plane, on an origin plane, or one that had been moved off its face used to print a line to the terminal and stop — the button was there, and pressing it did nothing at all. It now works like Extrude followed by a Subtract: sweep the profile, then cut it out of the body it reaches. A sketch that still sits on a face keeps cutting that face's body. The other silent failure is gone too: a cut whose sweep stops short of the body used to land on the History panel as a step that changed nothing, and it now says the profile doesn't reach anything and leaves the distance open so you can push it further or reverse it. And for a sketch with no host body the arrow starts out aimed at the nearest body rather than at whichever way the plane happens to face. - **A point placed on a circle or arc stays there.** Landing on a rim already worked, but nothing remembered it, so the first drag threw the relationship away — and with snap-to-grid on, dragging a line rounded BOTH its ends to the nearest grid point, which pulled them off their circles, rotated the line and shortened it, on a drag of essentially no distance. Now the point remembers its rim: move the line and the end slides around the circle; pull it clear and the attachment simply lets go. Sticky, not locked — there is nothing to delete, and no dialog. It survives save and reload, and shows the same "On Circle" marker that On Line has always shown. - **A value you type in a sketch beats the snap grid.** Typing a 7.3mm circle diameter on a 1mm grid built an 8mm circle — and recorded a Radius constraint of 3.65 against it, so the circle disagreed with its own constraint from the moment it existed. Typed values are no longer re-rounded. Anything you did not type still snaps. - **A rectangle drawn from its centre no longer doubles a typed width.** Typing the width and then *clicking* the height spanned the full typed value either side of the centre. Typing both values was always correct, which is why it took a specific sequence to see. - **The sketch grid on a face follows the world, not the longest edge.** A symmetric tapered face put the grid on one of its diagonals, because the rule was "align to the longest straight edge" and a trapezoid's longest edges are its diagonals. It now prefers the edge that agrees best with the world axes, and falls back to the longest edge only when nothing agrees — so a part deliberately rotated off-axis still follows its own geometry. - **A body could change id on every frame of a drag.** Extrude's preview created a new body per keystroke; anything referring to it downstream saw a different body each time. - **Scaling a circular face by the same amount in both directions kept it a circle.** It was being rebuilt as a spline, which left the side walls subtly wrong and could leave a sliver behind when pushed back down. - **Move Face refused to move a flat cap**, mistaking it for a pocket. - **The Move Face arrows pointed the wrong way** in several cases — flipping with an incidental normal direction, and coloured by the world axes rather than the ones shown in the UI. - **A disabled Thread step still counted as threaded**, so operations kept reflowing beneath a thread that wasn't there. - **Windows builds have been broken since the hole work landed** — `near` is a `windows.h` macro. - Scale Face and Taper had become **unreachable** in a shipped build; both are their own entries again. ### Internal Most of the work in this cycle doesn't show up above: the interactive operations (Move Face, Extrude, Push/Pull, fillet/chamfer, the face ops) moved out of the `Application` god-class into self-contained controllers, and every live preview was moved off the history stack. See `docs/architecture.md` for the three preview models and why the distinction matters. - Aug 3, 2026 1.6.0## Release description Materializr 1.6.0 opens **several projects at once**. Tabs carry their own history, camera and crash recovery, and closing the last one drops you at a new **home screen** where recent projects show a rendered thumbnail of the model rather than a filename — and where you can pull a **part out of another project** into the one you're working on. Threads gain **multi-start** cutting (interleaved helixes, bottle-cap style) with groove width set explicitly, and every numeric field on touch now unfolds a **number pad** in place instead of raising the OS keyboard.
More…
On the fixes side: the snap grid now lands where it draws, moving several bodies at once no longer closes the app, saving mid-sketch keeps what you were drawing, and on macOS the Save and Export dialogs open at all. ## Changelog ### Added - **Tabbed workspaces**: several projects open at once, each with its own history, camera and crash recovery. `Ctrl+Tab` switches; the "+" button offers New / Open / Open Recent; closing the last tab returns to the home screen. Tabs appear in all three layouts. - **Home screen** with project thumbnails: recent projects show a rendered preview of the model instead of a filename. Project files carry the thumbnail with them, and **parts from another project** can be opened alongside what you already have. - **Multi-start threads**: interleaved helixes, bottle-cap style, with a stepped Starts field and a depth cap that matches what actually gets cut. Groove width is now set explicitly instead of being derived from the pitch. - **Number pad for touch**: numeric fields unfold a pad in place — digits, sign, decimal, backspace and Enter — across every numeric field in the app. It follows the Touch mode setting, so a device with a keyboard keeps using the keyboard. - **Export any format per body**, and export a multi-selection: the viewport's body menu and the Items panel both offer the full format list. - `Ctrl`+click in the Items panel extends a selection across types. ### Fixed - **The snap grid wandered.** Clicks now land on the lattice, and the grid the viewport draws *is* that lattice. Inference guides can choose which lattice point you land on but can no longer take you off it, and the drawn grid is anchored in the sketch plane's own frame instead of world space — where it sat 10–50% of a cell out of step, which at a 0.1 mm grid is most of a cell. - **Moving several bodies at once could close the app**, and was slow enough to stall the UI for over a second per drag. A multi-body move now relocates the bodies instead of rebuilding every surface as a NURBS. - **Walls vanishing** when a rectangle was drawn on a busy sketch face: coincident straight edges collapse to one instead of breaking the loop walker. - **Saving while drawing a sketch discarded it.** The in-progress sketch is registered with the document before the file is written. - **The face-centre marker didn't follow a moved sketch**, sitting exactly as far behind as the sketch had moved. - **Construction planes drew behind bodies** instead of in front. - **Arcs shifted after placement** — the centre no longer welds itself off its own endpoints. - A sketch whose host body was deleted is treated as free-floating rather than aiming operations at a body that no longer exists. - **macOS: Save, Save As and every export did nothing** — no dialog, no error. Command is now the shortcut key throughout, including Undo/Redo/Select-All, which were alone on Control. - **Truncated or malformed BREP files** are refused before the kernel reader opens them rather than faulting inside it — a hard crash on Windows. - Escaped exceptions cost a frame instead of the session, and a stale body lookup no longer exits the app silently. ### Changed - ImGui is pinned to a release tag and appimagetool to a checksummed release, so a given Materializr version builds the same way twice. - Windows builds with `/EHa`, which the codebase already assumed, so kernel faults are catchable rather than fatal. ## Downloads - **Linux**: `Materializr-x86_64.AppImage` - **Windows**: portable `.zip` or the `.exe` installer - **macOS** (Apple Silicon): `.dmg` - **Android**: `materializr-1.6.0-vc42-arm64-v8a.apk` (most devices) or `-x86_64.apk` (Chromebooks / Intel tablets). Google Play is updated separately.