eternityforest 11 hours ago

Looks pretty nice! I could see this being really nice for making customizable models, if it could import and alter step files, and had something like the customizer UI in FreeCAD.

  • FeepingCreature 11 hours ago

    Tbh I suspect step files would require more code than the entire project so far. It's really not designed to track objects in terms of objects, faces and edges.

    The goal here was to avoid a lot of complexity from the bigger CAD tools like FreeCAD.

    • eternityforest 8 hours ago

      Ah, I don't know much about the actual algorithms involved in 3D work.

      There seems to be a few libraries out there for converting a mesh to an approximate SDF though, so I assume the Rust lib for that could be compiled to WASM, but that might be an issue if simplicity is the priority.

      • FeepingCreature 5 hours ago

        Sure you could pull it in as a pure object, that wouldn't be too hard; as you say, grab a JS lib... though pure SDF isn't really enough, fncad needs interval SDF which might require some work.

        But the problem is, you couldn't do anything with the model. You couldn't change the edge chamfering etc. It'd just be an insert.

FeepingCreature 18 hours ago

I (Sonnet 3.7 really) made a text-based CAD editor. It's like OpenSCAD but the backing abstraction is Signed Distance Fields, so that it can represent, for instance, smooth CSG.

The mesher is very simple; just "subdivide an octree using interval arithmetic, put a mesh around it, then fit it to the surface using the SDF gradient." The intended usecase is for 3D printing, where slight errors don't matter and you can just throw triangles at the problem.

Performance is okay, but not great. I blame JS. ;)

This project is AI coded, but it's not vibe-coded: I designed the core abstractions deliberately, so all design problems are my own. The website, however, is near entirely Sonnet's work.

Source is on Github: https://github.com/fnCAD/fnCAD