Here is a thought experiment. What if 3D printers support implicit representation natively. Resin printers are basically physical marching cube machines. FSM would need an algorithm for following contours but should be doable.
Fidget
51–57 of 57 posts
Re: Fidget
#52> Note that the speedup is less dramatic with smarter algorithms; brute force doesn't take advantage of interval arithmetic or tape simplification! The optimized rendering implementation in Fidget draws this image in 6 ms using the bytecode interpreter, or 4.6 ms using the JIT backend, so the improvement is only about 25%.
I love how this is focused on how the JIT backend is less important with the algorithmic optimizations, and not on how the algorithmic optimizations give a 1000x improvement with bytecode and 40x with JIT.
Re: Fidget
#53A bit of a tangent, but I've been shopping around for the best code based CAD software. I gave cad query a shot and had a few issues. Any recommendations? My use case is 3D printing.
For people who don't like opening videos:
* OpenSCAD
* DSLCAD
* CadQuery
* Build123d
* Cascade Studio
* Declaracad
* Replicad
Re: Fidget
#54Here is a thought experiment. What if 3D printers support implicit representation natively. Resin printers are basically physical marching cube machines. FSM would need an algorithm for following contours but should be doable.
Relatedly, here’s a slicer built around Fidget https://github.com/Wulfsta/WeekendSlicer/tree/main
Re: Fidget
#55Hi, this is my project :) I particularly love this corner of CS because there's something for everyone – data structures and algorithms, low-level performance work, compilers, rendering / computer graphics, UI/UX for design tools, GPGPU programming, and more! I'll be answering questions in the threads as I see them, but feel free to connect on social media ( https://mattkeeter.com/links/ ) or follow my blog's RSS fee…
This is really great, thank you for doing this. Tangentially, while browsing through your blog I found this: https://www.mattkeeter.com/projects/machined-pen/the_plan.jp... This illustrates beautifully an idea that's been rattling around in my head for a while: what if the process you went through to design this manufacturing plan was the user facing cad api? When I approach a "making" problem--whether it's carpentry…
Im not sure about CLI tools but I'd say that most parametric design (ie fusion, solidworks) software have robust DFM features as it is. Many softwares have a timeline that represents a series of steps taken to create your intended part. In fusion you can set up your project for Milling, sheet metal, or 3d printing and modify the tool paths and bends in suite.
Not sure what software you are using but I would step away from CLI of free tools if you are serious about parametric modeling
Re: Fidget
#56Earlier quoted context omitted.
This is really great, thank you for doing this. Tangentially, while browsing through your blog I found this: https://www.mattkeeter.com/projects/machined-pen/the_plan.jp... This illustrates beautifully an idea that's been rattling around in my head for a while: what if the process you went through to design this manufacturing plan was the user facing cad api? When I approach a "making" problem--whether it's carpentry…
>What sequence of operations do I need to perform to achieve the desired end result? The "cad api" (literally an api in the case of code cad tools or the visual representation thereof in traditional mouse driven interfaces) does not work this way, and forces me to think about how to represent the finished shape not about how I'll actually make it. Im not sure about CLI tools but I'd say that most parametric design (i…
Re: Fidget
#57Earlier quoted context omitted.
This wouldn't be an issue if I locked my computer in a safe, but the rest of the system is changing underneath me: I may have a new laptop, a new CMake version, a new Qt install location, etc. Having everything managed through Cargo does a great job of isolating me from those kind of changes.
Just in case you are unaware, these build issues are entirely solvable by defining a Nix flake for your project, resulting in a repeatable, reproducible build every time: https://nixos.org/ https://wiki.nixos.org/wiki/Flakes
Until they're not, at which point if you're not a nix+flake wizard you're completely at sea :)