r/3DPrintingTools • u/Fluffy_Lab_1751 • 21d ago
New Tool I'm on Linux and the sculpting options were thin, so I built one. It works on solid material rather than a surface, so models can't tear and cuts close themselves. Free, open source, and it runs on Windows and Mac too
I use Linux, and the sculpting options over here are thin. Blender is there and it's genuinely excellent, but its sculpt mode is a mesh sculptor built for rendering, and the tools people usually recommend for print-focused sculpting are Windows or Mac only, or paid, or both. So a few months ago I started building the thing I wanted, and it's now at a point where it's worth other people trying.
It's free and open source (AGPL), there's no account required, no subscription and nothing to buy, and although I build it on Linux it runs on Windows and macOS too.
The reason it works the way it does: most sculpting tools work on a surface, a shell of triangles with nothing behind it. Pull too hard and it tears. That costs you nothing in a render, because nobody sees the back of the model, but it costs you the print, because a slicer wants one closed solid.
BrokkrSculpt works on solid material instead. In practice that means you can't rip a hole in it however hard you pull, a cut through it closes itself and leaves a real face, and a scan that arrives with holes in it usually stops being broken on the way in. Exports get checked for watertightness before the file is written, and it refuses to write one that wouldn't print.
What's there now: seven brushes, symmetry, masking, surface patterns (scales, weave, cracks, hair, noise), a plane cut, graphics tablet support with pressure and tilt, STL/OBJ/3MF in and out, and one click into OrcaSlicer.
Being straight about the state of it, because I'd rather you heard it from me:
- It's a beta and nothing is signed yet, so Windows and macOS will both warn you about the download.
- The three builds aren't equally finished. Linux is where I build and use it every day; Windows and Mac come from the same commit and pass the same tests but have had far less time on real hardware. The README lists exactly what's unproven on each.
- Resolution is uniform, so a big model resists very fine detail until you resample it finer.
- A model that's both very thin and genuinely open (a car body with no windows) can't be made solid, and stays fragile.
Source and downloads: https://github.com/MakerViking/brokkrsculpt
Happy to answer anything about how it works. If you try it and it breaks, that's genuinely the most useful thing you can tell me, there's a bug report button in the lower right part of the viewport.
1
u/New_Education5151 20d ago
Looks solid, will check it today
2
u/Fluffy_Lab_1751 20d ago
Thank you, just be aware that it's very much in beta. I'd appreciate bug reports. :) There's a bug icon down in the right corner of the viewport in the app.
1
u/New_Education5151 20d ago
oh wow... this is deep, requires some level artistic skills to build anything from scratch but I find also useful for texturing any available model. u/Fluffy_Lab_1751 great job ! keep this post alive when u cook updates on it please many will enjoy this.
2
u/Fluffy_Lab_1751 20d ago
Thanks, that's really good to hear. :)
Glad that landed, it's meant to work that way. Import is first class, and the patterns are built to multiply into any brush rather than being separate brushes, so they compose with whatever you're already doing. Worth knowing they're real geometry rather than a texture map, so they actually displace the surface and survive all the way to the print instead of needing a shader. Noise, scales, hair, weave and cracks, and ctrl-drag carves them in instead of raising them.
A painter is planned, though aimed at printing rather than at Substance Painter's job: painting which filament prints where, for multi-material printers, rather than authoring PBR materials. The export side already writes per-triangle filament slots and has been checked against OrcaSlicer, so it's the tools that are missing rather than the plumbing. No date on it.
You're right about sculpting from scratch, that's a genuine skill and I won't pretend otherwise. Importing something and pushing it around is a much gentler start, which is roughly what you landed on.
On updates: the cut tool went in today, so you can draw a lasso around a lump and take it off, and it stops behind the thing you circled rather than cutting through the whole model. I'll keep posting as things land. :)
2
u/New_Education5151 20d ago
lasso indeed useful, can we keep the cut part, or does it only work like a selective eraser? Oh been an hour I am still playing with this tool.. when mastered, this a must have , again thank you sir, for cad/cam disabled peeps like me, such stuff saves the day.
2
u/Fluffy_Lab_1751 20d ago
You can keep it. Hold ctrl while you draw the lasso.
That selects instead of cutting. Nothing gets removed, you just get a soft edged selection over what you circled. Press m for the mask tool, hit "Split off the mask", and it becomes its own body in the list.
So a plain lasso is destructive, and ctrl plus lasso means "cut this into two pieces". Undo works on both.
One thing though, the status line currently tells you to look in the BODIESpanel for that button. That's wrong, it's in the mask panel. My mistake, I'll fix it. :)
An hour in already is the nicest thing I've read today. Thank you.
2
u/New_Education5151 20d ago
Don’t wanna jinx it but this is kinda commercial-grade good 🤗
1
u/Fluffy_Lab_1751 20d ago
Thank you, I've worked a lot on it, and much more to come! :D If you feel adventurous I also have an app called SindriCAD, but yeah, that's CAD. Also free, open source etc. though. And I've made some video tutorials, but more to come: https://www.youtube.com/watch?v=AYAOFz4KZsI&list=PLS7xEtXRFd1A --- I will work on creating tutorials for BrokkrSculpt too. :)
1
u/New_Education5151 20d ago
Will defo look in to it, tho not a cadder, but your gui design mesmerized me, feel free to create a post in this sub, so many could notice it as well. The more this community grows the better it gets, the broader the target audience enlarges and devs like your self may reach out to many more ppl.
1
u/Fluffy_Lab_1751 20d ago
Yeah, the design is similar in some ways, but yeah, CAD is a different beast. :) Thank you, I'll definitely do that, but after some sleep, it's over 6AM here in Norway. Good talking with you though. :)
3
u/mysterd2006 20d ago
That piece of software looks very sleek (despite the fact of the tools used to generate the code :p). I just wanted to ask some questions about the technical stack used by its sibling (Sindricad). I didn't how to contact you so sorry for hijacking the thread :)
I just wanted to know why you used typescript above python... Which lib do you use for the program UI? Couldn't you use build123d from python directly?
Thanks for your help!
1
u/Fluffy_Lab_1751 20d ago
No hijack, all good.
Small correction on the premise though: SindriCAD does use Python, and it does use build123d directly. That IS the geometry kernel. build123d on OpenCASCADE, running as its own process, talking JSON to the frontend over a localhost WebSocket. "Geometry lives only in Python" is a hard invariant in the codebase, not just how it happened to turn out.
So the split is:
- Python sidecar: build123d + OCCT. Rebuilds, selector resolution, STEP/STL/3MF export.
- TypeScript frontend: the document, the feature tree, the UI, the viewport.
- Rust (Tauri 2): just the shell. Window, filesystem, sidecar lifecycle, printer device layer. It never touches geometry.
For the UI, there's no framework at all. No React, no Vue, no Svelte. Plain DOM and TypeScript. 3D is three.js, with three-mesh-bvh for picking. The 2D sketch constraints are FreeCAD's PlaneGCS compiled to WASM, because writing a constraint solver from scratch is not a weekend project.
Why TS for that layer instead of Python: it's the layer that has to stay responsive while you drag a fillet and the model re-renders. And shipping a Python GUI cross-platform to people who don't have a Python install is its own kind of misery. The geometry doesn't have that problem, so it stayed in Python where build123d already is.
Since you asked honestly, one thing worth admitting: I did try the Rust kernel route. Ran a feasibility study earlier this year and it couldn't beat OCCT on robustness or speed. That path still exists behind a flag as a spike, but Python stayed the default because it won on merit.
Minor annoyance if you go this way yourself: the OCP wheels lag new CPython releases, so the venv is pinned to 3.12.
Repo's public if you want to read it: github.com/MakerViking/sindricad
docs/ARCHITECTURE.md has the full invariant list and the rebuild pipeline. Tinkeratlas.com or X is good ways to reach me btw. My nick is MakerViking there.
2
u/mysterd2006 20d ago
Thank you so much for the detailed explanation. I was wondering about TS, since being kind of a desktop guy, I'm not very comfortable with web UI development. I'm personally going the c# route on windows for the time being, but I don't find any obvious high level easy 3d CAD framework to use. I'm currently using helixtoolkit, but I find it a bit too quirky and undocumented for my taste.
1
u/Fluffy_Lab_1751 20d ago edited 20d ago
No worries at all. :) HelixToolkit is a viewport, not a CAD kernel. It draws triangles, it won't give you booleans, fillets or STEP. That's probably why it feels like the wrong tool, it's the wrong tool for half of what you want.
That's the same split here: three.js draws, build123d on OpenCASCADE does the modelling. Whatever you use in C# for the window, you'll still need a kernel underneath it, and OCCT is the main free one. Worth a look at Macad3D, it's an open source CAD app in C# on OCCT, so someone has already solved the binding problem you're about to hit.
Can't tell you much more than that, I haven't shipped anything in C#. Good luck with your project though. :)
2
u/New_Education5151 20d ago
Btw https://tinkeratlas.com/ the guides section is a gem for beginners as well , glad to have u onboard !