Discussion
FluidCAD
alterom: What geometry kernel is it using?Which operations are supported? (Booleans? ...)Where's the API link?...finally, was this vibe-coded?Inquiring minds want to know!
kaesve: I was also curious, looks like open cascade, and a pretty good range of operations supported (see https://github.com/Fluid-CAD/FluidCAD/tree/main/lib/oc). Super cool!
maouida: Based on opencascade wasm. Features in the docs. Api coming soon. No it was not, I started this before I even started using coding agents. It took many iterations and rewrites before settling on the current shape. After building the core features I started using claude to add more features, improve test coverage and generte docs.
shocks: This looks awesome.
WillAdams: Why use this rather than Maker.js?https://www.microsoft.com/en-us/garage/profiles/maker-js/
astroalex: One obvious difference I can see at a glance is that Maker.js doesn't support 3D models, while FluidCAD does. I assume Maker.js is a lower level library aimed at interfacing directly with CNC machines, while FluidCAD is focused on 3D design.
WillAdams: Maker.js is supposed to also support openjscad (or whatever they're call it these days, the JavaScript enabled version of OpenSCAD).
unforbiddenYet: Nice work and kudos for programming it by hand! Starred the project and plan to try it out soonish.
bsimpson: The thing that made Flash magical was that it had the approachability of a design tool (and it really did have some of the best design tools ever), with the extensibility of a scripting language. You could start by drawing on a canvas and grow into programmatically generating designs.This looks like it could do the same thing for constraint modeling. That's awesome!
ramses0: I'll throw my hat in on the feedback... looks great!https://github.com/openscad/openscad/pull/4478#issuecomment-...My pet use case is: "My naive approach as a programmer would be: `pen := new Pen(q,r,s,t); box := new Box( pen.L, pen.W, pen.H )`" along with being able to sometimes work with the whole pen, and sometimes touch the pen vs. the cap separately.Since it's all javascript, it seems like there's a chance that this use case would work (ie: `p = Pen(...).render().getWidth()`)? Additionally, your intermediate step screenshots really makes it seem like a SketchUp-ish GUI would be perfect! Obviously a ton of work, but SketchUp's "grab face + extrude / push", but if it were "sticky" to the underlying parametric components seems like it'd be an awesome combo... something like group/components, but backed by code instead of GUI-only (or GUI-centric) editing.
alterom: Thanks!> Features in the docsThe Docs section of the website has "Installation", "Editor setup", and "Your First Model".Not a list of operations/features.The front page lists some (extrusion, fillets), but not all.Is the entirety of OpenCASCADE exposed to the user via the JS API, or are you only supporting a curated subset?