Show HN: FluidCAD – Parametric CAD with JavaScript

(fluidcad.io)

91 points | by maouida 4 hours ago

12 comments

  • ramses0 2 hours 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.

  • upcoming-sesame 1 hour ago
    I don't know much about CAD but it is surprising to me this hasn't existed before seems so natural. great work
    • jwilliams 1 hour ago
      It’s got plenty of precedent - AutoCAD has a Lisp equivalent since 1986[1]. Arguably it is what made it the powerhouse CAD tool.

      Irrespective - This project is pretty cool to see!

      [1] https://en.wikipedia.org/wiki/AutoLISP

  • isaacphi 1 hour 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?

  • bsimpson 2 hours 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!

  • kabir_daki 56 minutes ago
    Impressive to see parametric CAD running in the browser. Curious how you handle precision with floating point — that's usually the first wall you hit with geometry in JS. Does it support STEP or DXF export?
  • gitgud 1 hour ago
    Really interesting! Is there a list of all supported CAD operations? Can I “revolve” 2D sketches? Can I make assemblies?
  • unforbiddenYet 2 hours ago
    Nice work and kudos for programming it by hand! Starred the project and plan to try it out soonish.
  • interstice 2 hours 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 4 hours ago
    • astroalex 3 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 3 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 3 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 3 hours ago
    This looks awesome.
  • alterom 4 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 3 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 3 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 2 hours 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 2 hours 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

    • varispeed 12 minutes ago
      > ...finally, was this vibe-coded?

      Reminds me the days when I created a Windows app for accounting and someone asked did you code it in C++ Builder? As if writing form scaffolding by hand was sign of a skilled developer.

      What I am trying to say - who cares? Most software create by one person is vibe coded, just with the AI, you don't have to spend ages typing actual code that you would have eventually typed anyway.