• ramses0 19 minutes 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.

    • interstice 12 minutes 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.

      • bsimpson 28 minutes 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 27 minutes ago

          Nice work and kudos for programming it by hand! Starred the project and plan to try it out soonish.

          • WillAdams 2 hours ago
            • astroalex an hour 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 an hour 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 an hour ago

                This looks awesome.

                • alterom 2 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 5 minutes 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 a few seconds 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