[HN Gopher] Cascade Studio: A Full Live-Scripted CAD Kernel and ...
       ___________________________________________________________________
        
       Cascade Studio: A Full Live-Scripted CAD Kernel and IDE in the
       Browser
        
       Author : ArtWomb
       Score  : 37 points
       Date   : 2021-01-21 13:44 UTC (9 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | dekhn wrote:
       | I'm generally less interested in browser-hosted applications for
       | 3D stuff (compared to desktop apps) but this is written with an
       | interesting combination of technologies that span desktop and
       | web. For example, OpenCASCADE, the same library used in FreeCAD,
       | is emscripten-compiled to run in javascript. There's a number of
       | support libraries that make web development look much more like
       | application development (window management, etc), controller/gui
       | library.
       | 
       | It's a view of how the web could have evolved (to be a sort of
       | transparent desktop-like application support) earlier, with
       | greater standardization on application-style GUIs.
        
         | skratlo wrote:
         | Yeah, I'm not impressed by performance here, did you try this?
         | https://donalffons.github.io/opencascade.js-examples/index.h...
         | 
         | It takes ages to load (probably gigantic wasm file), and ages
         | to re-generate that silly bottle. I could live with the initial
         | loading hog, but the performance of the actual kernel has to be
         | there.
        
       | 6d65 wrote:
       | I've used it, it's very good.
       | 
       | I've started my own programmable cad after using openscad, I just
       | couldn't look at aliased lines and weird colors anymore, plus
       | making complex models is slow, and bevels are hard.
       | 
       | My own cad is still far from working, probably because I had the
       | brilliant idea to start my own csg kernel. In the meanwhile I've
       | stumbled upon CascadeStudio.
       | 
       | Cascade Studio is fast, looks good, available everywhere via
       | browser. I was able to do a non-trivial model, add bom generation
       | via console.log. It would be great if there was a standalone
       | version as well, so larger projects can be built directly from
       | the filesystem.
       | 
       | Anyway, it's good stuff, whishing the project all the best.
        
         | phkahler wrote:
         | >> My own cad is still far from working, probably because I had
         | the brilliant idea to start my own csg kernel.
         | 
         | SolveSpace maintainer here. After fixing a number of things in
         | the SS Nurbs kernel, I've added "do this over in Rust" to my
         | bucket list. It may never happen, but if you want to talk
         | algorithms or strategy drop me an email. Same ID at gmail.
         | 
         | AFAICT there is currently no other Free Software for trimmed
         | NURBS other than Cascade and SolveSpace.
        
           | 6d65 wrote:
           | Yes, my plan is to do it in Rust.
           | 
           | I did start it in luajit first, because I thought that it
           | will be a faster feedback loop. I created an OpenGL window,
           | and set up nodemon to restart the luajit app on changes. It
           | is quite fast, but still not as smooth as I imagined it.
           | Doing it Rust from the start, with a TDD approach, might have
           | been a better idea. Things got quite messy quite quickly
           | because of the luajit OpenGL bindings.
           | 
           | The goal is to do difference, addition, intersection first
           | between basic 3d volumes: sphere, cuboids, cylinders. And
           | then yes, some extruded splines. I was thinking about
           | starting with beziers, as this is the only spline I've
           | implement before.
           | 
           | I haven't built a cad before, so I went with a data oriented
           | approach, defined the data needed to represent each of the
           | basic volumes, and 2d shapes, as well as the
           | relationships(diff, union, intersection). Something like a
           | normalized SQL database. A table (array), for positions,
           | rotations, bounding boxes and so on. I'm yet to see how well
           | this scales up to more complex models.
           | 
           | It is very much in the beginning. I've started from first
           | principles, not looking up existing approaches and see what I
           | can come up with. That's the reason it probably won't become
           | something serious, but it's still fun to explore.
           | 
           | Thank you for offering help, might have a closer look at
           | SolveSpace if I get to something serious that I cannot come
           | up with a solution on my own.
        
       | mech422 wrote:
       | should probably mention, if you're looking for a local solution,
       | there are at least 2 OpenCascade wrappers for python:
       | 
       | CadQuery ( https://github.com/CadQuery/cadquery )
       | 
       | PythonOCC ( https://github.com/tpaviot/pythonocc-core )
        
         | skanga wrote:
         | I've used CadQuery a lot and found it to be a terrific tool.
         | Sadly, its still very buggy and has not been updated in almost
         | a year...
        
       | greatgib wrote:
       | This project is unbelievably good!
       | 
       | And created only with vanillaJS, that is the incredible thing!
        
       | newlikeice wrote:
       | what are the advantages of this compared to using freecads gui
       | approach to modelling?
        
       ___________________________________________________________________
       (page generated 2021-01-21 23:02 UTC)