Show HN: FluidCAD – Parametric CAD with JavaScript

(fluidcad.io)

78 points | by maouida 3 hours ago

11 comments

  • isaacphi 2 minutes ago
    This looks incredible, great job!

    I've been revisiting OpenSCAD recently but find it very frustrating. I just got started with build123d which is great but I'll definitely be trying this. The workflow is exactly what I'm looking for.

    I'll drop an issue if I have feedback. Are you open to PRs?

  • upcoming-sesame 6 minutes ago
    I don't know much about CAD but it is surprising to me this hasn't existed before seems so natural. great work
  • gitgud 8 minutes ago
    Really interesting! Is there a list of all supported CAD operations? Can I “revolve” 2D sketches? Can I make assemblies?
  • ramses0 1 hour ago
    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.

  • bsimpson 1 hour ago
    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!

  • unforbiddenYet 1 hour ago
    Nice work and kudos for programming it by hand! Starred the project and plan to try it out soonish.
  • interstice 1 hour ago
    I've been working on this exact idea! But it's late, will remember to come back and check this out to compare notes.
  • WillAdams 2 hours ago
    • astroalex 2 hours ago
      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 2 hours ago
        Maker.js is supposed to also support openjscad (or whatever they're call it these days, the JavaScript enabled version of OpenSCAD).
  • CWIZO 2 hours ago
    This looks great. I just started trying to generate some models using golang and the ecosystem doesn't seem great. Will check this out, might work out better.
  • shocks 2 hours ago
    This looks awesome.
  • alterom 3 hours ago
    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 2 hours ago
      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 2 hours ago
      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.
      • alterom 1 hour ago
        Thanks!

        > Features in the docs

        The 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?

        • maouida 1 hour ago
          You are welcome.

          There is a guide section and one tutorial: https://fluidcad.io/docs/guides/

          This week will be all for documentation.

          It is only a subset of features focused on solid modeling. Surface modeling will come in future versions