[HN Gopher] Show HN: FluidCAD - Parametric CAD with JavaScript
___________________________________________________________________
Show HN: FluidCAD - Parametric CAD with JavaScript
Hello HN users, This is a CAD by code project I have been working
on on my free time for more than year now. I built it with 3 goals
in mind: - It should be familiar to CAD designers who have used
other programs. Same workflow, same terminology. - Reduce the
mental effort required to create models as much as possible. This
is achieved by: - Provide live rendering and
visual guidance as you type. - Allow the user to reference
existing edges/faces on the scene instead of having to calculate
everything. - Provide interactive mouse helpers for
features that are hard to write by code: Only 3 interactive modes
for now: Edge trimming, Sketch region extrude, Bezier curve
drawing. - Implicit coding whenever possible: e.g: There
are sensible defaults for most parameters. The program will
automatically fuse intersecting objects together so you do not have
to worry about what object needs to be fused with what. - It
should be reasonably fast: The scene objects are cached and only
the updated objects are re-computed. I think I have achieved these
goals to a good extent. The program is still in early stages and
there are many features I want to add, rewrite but I think it is
already usable for simple models. Update to add more details: This
is based on Opencascade.js WASM binding. So you get all the good
things that come with any brep kernel. Fillets, chamfers, step
import and export... The scene is webview but the editing is in
your local file. You use your own editor and the environment you
are familiar with. One important feature that I think make this
stand out among other code based cad software is the ability to
transform features not just shapes. More here:
https://fluidcad.io/docs/guides/patterns You can see it in action
in the lantern example: https://fluidcad.io/docs/tutorials/lantern
Author : maouida
Score : 88 points
Date : 2026-04-10 18:39 UTC (4 hours ago)
(HTM) web link (fluidcad.io)
(TXT) w3m dump (fluidcad.io)
| alterom wrote:
| 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!
| maouida wrote:
| 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 wrote:
| 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 wrote:
| 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
| kaesve wrote:
| 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!
| varispeed wrote:
| > ...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.
| WillAdams wrote:
| Why use this rather than Maker.js?
|
| https://www.microsoft.com/en-us/garage/profiles/maker-js/
| astroalex wrote:
| 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 wrote:
| Maker.js is supposed to also support openjscad (or whatever
| they're call it these days, the JavaScript enabled version of
| OpenSCAD).
| CWIZO wrote:
| 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 wrote:
| This looks awesome.
| bsimpson wrote:
| 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 wrote:
| Nice work and kudos for programming it by hand! Starred the
| project and plan to try it out soonish.
| ramses0 wrote:
| 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.
| interstice wrote:
| I've been working on this exact idea! But it's late, will
| remember to come back and check this out to compare notes.
| gitgud wrote:
| Really interesting! Is there a list of all supported CAD
| operations? Can I "revolve" 2D sketches? Can I make assemblies?
| upcoming-sesame wrote:
| I don't know much about CAD but it is surprising to me this
| hasn't existed before seems so natural. great work
| jwilliams wrote:
| 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 wrote:
| 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?
| kabir_daki wrote:
| 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?
___________________________________________________________________
(page generated 2026-04-10 23:00 UTC)