[HN Gopher] Show HN: Chili3d - A open-source, browser-based 3D C...
       ___________________________________________________________________
        
       Show HN: Chili3d - A open-source, browser-based 3D CAD application
        
       I'm currently developing Chili3D, an open-source, browser-based 3D
       CAD application. By compiling OpenCascade to WebAssembly and
       integrating Three.js, Chili3D delivers near-native performance for
       powerful online modeling, editing, and rendering--all without local
       installation. Access it here:
       https://github.com/xiangechen/chili3d  Features:  Modeling Tools:
       Create basic shapes (boxes, cylinders, cones, etc.), 2D sketches
       (lines, arcs, circles, etc.), and perform advanced operations
       (boolean operations, extrusion, revolution, etc.).  Snapping and
       Tracking: Precisely snap to geometric features, workplanes, and
       track axes for accurate alignment.  Editing Tools: Modify (chamfer,
       fillet, trim, etc.), transform (move, rotate, mirror), and perform
       advanced edits (feature removal, sub-shape manipulation).
       Measurement Tools: Measure angles and lengths, and calculate sums
       of length, area, and volume.  Document Management: Create, open,
       and save documents, with full undo/redo history and support for
       importing/exporting STEP, IGES, BREP formats.  User Interface:
       Office-style interface with contextual command organization,
       hierarchical assembly management, dynamic workplanes, and 3D
       viewport controls.  Multi-Language Support: Built-in i18n support
       with current languages including Chinese and English.
        
       Author : xiange
       Score  : 220 points
       Date   : 2025-06-10 15:39 UTC (7 hours ago)
        
       | tmjdev wrote:
       | Very impressive. Unsure what is going on with the tool icons,
       | they're a bit strangely named. "Bessel", "pour corner" (twice),
       | "From the cross section".
       | 
       | Looks like some work needs to be done to get this into familiar
       | CAD terms with the English translation.
       | 
       | Difficult to use right now, it just switched into the Chinese
       | translation when trying to make a cube and there doesn't appear
       | to be an easy way to change that.
        
       | johnwheeler wrote:
       | Sometimes I wish they would put in the README just a brief
       | description of which part of the stack they're responsible for
       | and how they used it.
       | 
       | I see that it uses some type of WebAssembly technology and some
       | CAD/CAM API that gets translated over. I also see they integrated
       | with Three.js,
       | 
       | but what I would like to know is how much of the whole "thing"
       | are they responsible for?
       | 
       | Are they responsible for all that code that draws the viewport
       | and lets the user pan around? Are they responsible for that
       | Microsoft Office ribbon UI? Are they responsible for the
       | internationalization? What parts did they do? When I look at
       | this, it's so sophisticated it just makes me feel think about the
       | widening divide as far as AI skill gap goes. Was AI used?
       | 
       | Now they don't owe me that, of course, and that's nothing on
       | them, kudos to them! It's a brilliant project.
        
         | serf wrote:
         | >Are they responsible for that Microsoft Office ribbon UI?
         | 
         | Well, that's the beauty of open source. Go read it.
         | 
         | https://github.com/xiangechen/chili3d/blob/43161b9f51021f2ef...
         | 
         | >When I look at this, it's so sophisticated it just makes me
         | feel think about the widening divide as far as AI skill gap
         | goes. Was AI used?
         | 
         | I feel like this was the "So tell me about your father.." turn
         | here , did you really care about the details or did you want to
         | wax poetic about AI?
        
           | johnwheeler wrote:
           | If you want to know who made it, maybe try asking Microsoft,
           | not expecting a random open-source project to hold the
           | answers.
           | 
           | On the Widening AI Skill Gap No, sophisticated software
           | doesn't automatically mean AI was used. Your immediate jump
           | to an "AI skill gap" just because something looks well-made
           | says more about your assumptions than about the software
           | itself. Perhaps the real "skill gap" is in telling the
           | difference between good engineering and AI magic.
        
         | fsloth wrote:
         | I've found "So what did you do" is usually obvious to domain
         | experts and incomprehensible without understanding of the
         | domain without _very_ long readme that would be comparable in
         | complexity to a review article.
        
       | Prime_Axiom wrote:
       | Nice work man, I always love seeing open source efforts
       | especially in areas dominated by a few companies such as dassault
       | and auto desk. On a somewhat related note, I'm excited for the
       | nascent forays into context aware CAD using current llms.
        
       | rcarmo wrote:
       | Impressive, but I don't see any way to do constraints or
       | sketches.
       | 
       | (I'm also a bit sad that this is a web app, but, alas, such is
       | progress.)
        
         | SamBam wrote:
         | As someone who works in a school with Chromebooks, I love that
         | web apps like this exist, especially if students will be able
         | to export the files to a 3D printer. It greatly opens up the
         | number of tools we can use to do fun things.
         | 
         | That said, also as a teacher and a parent, I worry that
         | Chromebooks are making kids have no idea about the world of
         | non-web-apps. (And file systems, etc. etc.)
         | 
         | I watch my kid create a poster: find an image online, copy &
         | paste into an automatic background remover, c&p into an image
         | editing program to remove the watermark, c&p into Canva for
         | assembling with text etc.
         | 
         | Meanwhile I show her that I can do the whole thing on
         | Pixelmator Pro (or Affinity or Photoshop) and she looks at me
         | like I have three heads.
        
           | sirjaz wrote:
           | Chromebooks need to die, we need to get back to native apps.
           | Look with Windows we have msix, with Linux we have flatpack,
           | etc .. Storage is cheap, and our devices are powerful. Let's
           | use that power
        
             | SamBam wrote:
             | It simplifies things for schools, because everything is
             | easily managed, everything integrates with Google
             | classroom, and the hardware is fungible, you can log into
             | any one and have your files.
             | 
             | It doesn't train them how to use real computers, but that's
             | not on the state standards so they don't care.
        
           | phkahler wrote:
           | For CAD you can run Solvespace on a chromebook. I'm not sure
           | I want to promote it for use below high school, as the
           | geometry failures and their workarounds are probably too icky
           | for younger users. I want more polish for kids.
        
             | rcarmo wrote:
             | Solvespace is hardly polished enough for general use,
             | though. I can use it, but I constantly struggle against the
             | way it handles sketches.
        
         | joeevans1000 wrote:
         | Browsers can be just as powerful as 'native' apps. This is an
         | example of that. Browser apps free the user from proprietary
         | operating systems and their companies. Of course, Linux is a
         | way around that. However, why not just write it once and let
         | students and engineers the world over be able to share and open
         | files easily?
         | 
         | UPDATE: On my newer laptop thius is _faster_ than my native
         | apps. And I was literally drawing shapes within 30 seconds of
         | clicking on the link to this app. Compare that to the nightmare
         | of all the other tools out there with registrations, email
         | clutter, 2FA, and on and on. Oh, and cost in most cases!
         | 
         | UPDATE 2: I have no connection to this team other than having
         | just seen a post online about this tool. I've been navigating
         | the world of SketchUp/AutoCad/Revit recently so this of course
         | is totally thrilling. Especially for what it means for the
         | future.
        
           | gmueckl wrote:
           | This is just blatantly wrong. There are so many native
           | resources that any serious 3D application requires access to
           | that are blocked by browsers that this statement just isn't
           | true and never will be.
        
             | joeevans1000 wrote:
             | That's why I said 'can'. Once OS's lift restrictions on
             | what browsers can access then we'll finally have something
             | more close to 'write once run everywhere'. But that
             | wouldn't really help the proprietary software systems and
             | companies.
        
             | abe_m wrote:
             | Out of curiosity, what native resources are needed? It
             | seems Solidworks mainly needs access to the file system,
             | GPU, and perhaps networking. GPU and networking in the
             | browser, and the file handling could be implemented over
             | the network instead of locally.
             | 
             | For most current pro CAD, certainly there are a lot of
             | calls to Win32 libraries on Windows, but those aren't
             | fundamentally needed by a CAD system. There was
             | professional 3D CAD before Windows.
             | 
             | I don't know what native hardware would be needed that
             | isn't already accessible through current Chrome?
        
         | mft_ wrote:
         | _OFC this being HN people are jumping on the side comment about
         | web apps._
         | 
         | BUT the more relevant and valuable point you made was about
         | constraints and sketches.
         | 
         | And, related to this, true parametric design, which IMO is
         | vital for a CAD package to be taken seriously.
        
       | jasonthorsness wrote:
       | "by compiling OpenCascade (OCCT) to WebAssembly"
       | 
       | I wondered what geometry kernel it was going to use! Interesting
       | to me how few of these there are. Some of the solid modeling
       | stuff is nearly 40 years old (parasolid) this must be hard.
        
         | immmmmm wrote:
         | I'm doing a bit of BREP for GIS and even in 2D with line
         | segments only the problem is really non-trivial, a lot of edge
         | (pun intended) cases to take care of. Type system helps
         | enormously, so probably rust will be a win here (I think I saw
         | a project along those lines).
         | 
         | That being said, for CAD (personal usage) I switched from
         | Fusion 360 to Freecad 1.0 with almost no project and the latter
         | is an order of magnitude faster.
        
         | amelius wrote:
         | Would love to read more about how these types of geometric
         | problems are best approached.
        
           | phkahler wrote:
           | >> Would love to read more about how these types of geometric
           | problems are best approached.
           | 
           | Probably the most accessible NURBS kernel to learn from is
           | the one in Solvespace. The entire source for the core NURBS
           | is about 6KLoC:
           | 
           | https://github.com/solvespace/solvespace/tree/master/src/srf
           | 
           | My favorite file in there is ratpoly.cpp
           | 
           | It doesn't handle higher order NURBS or use knots. It's just
           | the basics, but there are a lot of geometric algorithms in
           | there. We're still trying to get the bugs out of NURBS
           | booleans, but the high level algorithm is sound.
           | 
           | BTW it can also be compiled for web but that is incomplete.
        
             | johncalvinyoung wrote:
             | Ugh, I wish I could read it but as I'm working in this
             | space professionally reading GPLv3 code is... risky.
             | 
             | Been working in 2D with bezier implementation for our in-
             | house CAD kernel. 3D parametric is limited at the moment,
             | though.
        
         | abe_m wrote:
         | I think the corner cases are likely hard, but the fundamental
         | mathematical representations of the 3D geometry haven't
         | changed. If the licensing cost of Parasolid and ASICs is
         | reasonable, there isn't really a commercial incentive to create
         | something new from scratch. The current market trend is
         | consolidation as Autodesk and Hexagon when on a buying spree
         | and bought up a lot of CAD and CAM software.
         | 
         | OpenCASCADE used to be commercial, but they couldn't find
         | enough customers to keep on and it got open sourced after a
         | failed commercial existence.
        
       | tapia wrote:
       | This looks super nice! That is kind of the interface I wish
       | FreeCAD could have. I am more the type of person who likes to use
       | a python interface to create parametric models, but this is
       | really cool!
       | 
       | Anyone knows what is the status of Truck [1] in this regard. Are
       | they going to implement an open-source CAD program with their
       | CAD-kernel? That also looks like a promising project.
       | 
       | [1] https://github.com/ricosjp/truck
        
         | infogulch wrote:
         | CADmium is built with the Truck kernel, though it looks like
         | CADmium has no repo activity since June '24.
         | https://github.com/CADmium-Co/CADmium
         | 
         | There's also the Fornjot kernel.
         | https://github.com/hannobraun/Fornjot
        
           | ttouch wrote:
           | Cadmium is long dead and unfortunately neither truck nor
           | fornjot are "there" yet - "there" been anything more complex
           | than a cube
           | 
           | Context: I was the main contributor/maintainer of cadmium
        
             | infogulch wrote:
             | Thanks for clarifying cadmium's status and offering your
             | take on the state of truck and fornjot. So, what happened
             | with cadmium? Is Truck just too primitive to build on top
             | of so far? It looks like both of these kernels are actively
             | being developed, what do you think of their rate of
             | progress?
        
               | ttouch wrote:
               | meh, internal problems mostly
               | 
               | No idea where truck is going, it'll take me quite some
               | time to tinker with CAD I think, it left me quite a
               | bitter taste...
               | 
               | Fornjot seems to be doing good, I'm donating to them and
               | I get regular updates (you should too!). Still, there's a
               | long, long road ahead
               | 
               | If I were to do this all over again I'd either go the
               | OCCT route (like chili3d or zoo) or solvespace. they're
               | both "lacking" kernels if you compare them to the
               | commercial ones, but I think there's enough "market gap"
               | for makers that would prefer a sustainable CAD format
               | instead of perfect fillets (and IMO freecad is not the
               | solution).
               | 
               | Keep in mind though that my efforts where laser focused
               | on non-math stuff. From what I gathered from my time in
               | cadmium, b-rep kernels are hard in an unsustainable
               | level. Browser level unsustainable. I just hope that out
               | of seer necessity we'll find another way to solve the CAD
               | problem, instead of a b-rep kernel
        
         | MaKey wrote:
         | > This looks super nice! That is kind of the interface I wish
         | FreeCAD could have.
         | 
         | What do you dislike about FreeCAD's interface?
        
           | mclau157 wrote:
           | FreeCAD interface needs to take a lot of pointers from paid
           | CAD programs, this Chili3D interface is quite close, larger
           | icons in ribbons at the top of the screen with clear
           | definitions
        
       | bee_rider wrote:
       | This is a dumb question, but seems like as good a place as any to
       | ask it:
       | 
       | I think of these CAD programs as being very old-school native
       | programs that either are a loosely collected group of tools that
       | allow you to manipulate files and pass them around (so, like, a
       | bunch of Linux native programs that spit out files and ingest
       | them, and you go around in the terminal to make sure everything
       | is in the right spot), or a nice GUI around a bunch of those
       | types of tools (it is definitely very possible that I've been
       | influenced by only seeing these tools via engineering grad school
       | where everything is open source, the gui's don't count, Linux
       | command line is assumed, and 90's tools are the baseline).
       | 
       | With a web-based system, what do you do? Like, for example if the
       | user wants to pass models to some finite element simulation tool,
       | do they just repeatedly download/simulate/go back to the
       | website/edit/download/simulate, or something like that?
       | 
       | Is there a nice way for browser based apps to pipe to each other?
        
         | bee_rider wrote:
         | I should say that this question is 100% not a backhanded
         | critique of the idea of this project, I'm genuinely curious
         | what the workflow looks like.
         | 
         | Making CAD more accessible seems like a massive win, in the
         | sense that it is really hard to get hands on experience making
         | things nowadays--hobbyist methods and professional ones have
         | diverged quite far! Easy web-based tool that bridge that gap
         | without playing around in the shell could be really useful.
        
         | fsloth wrote:
         | Not your main question but -
         | 
         | " very old-school native programs that either are a loosely
         | collected group of tools that allow you to manipulate files and
         | pass them around"
         | 
         | Opencascade is a C++ library and manages it's state in single
         | process. Examples:
         | https://dev.opencascade.org/doc/overview/html/samples.html
        
           | zokier wrote:
           | I think parent was referring to BRL-CAD, which is very much
           | feels like a collection of cli tools ducktaped together.
        
             | bee_rider wrote:
             | I was just commenting on my general impression of the sorts
             | of tools I saw other folks in the lab using, or that I had
             | to use in my classes. I'm more of a programming guy anyway,
             | so it is probably an issue of me being an uninformed
             | neighbor (all of the responses seem to indicate that I'm
             | wrong mostly, which is definitely not surprising).
        
         | jlarocco wrote:
         | I don't think your understanding is correct.
         | 
         | In the 60s, 70s, and 80s it was more true, but nowadays Catia,
         | NX, Creo, and the other big CAD systems are monolithic
         | applications with extensions and add-ons (either from the
         | vendor directly, sold as third party add-ons, or developed in
         | house with CAA/NXOpen/ProToolkit) for doing stuff like
         | composite design, sheet metal, various types of analysis, and a
         | million other things.
         | 
         | Under the hood they're very modular with hundreds (or
         | thousands) of shared library modules, and sometimes those
         | modules have long histories going back to the 70s, but the UI
         | of the 70s is long gone, and they're used like normal shared
         | libraries, not piping around data on the shell.
         | 
         | Not that it doesn't happen - I'm sure some companies have old
         | tools they haven't updated in decades - but the day to day CAD
         | work is all GUI based.
         | 
         | That's my impression working at a company doing CAD
         | translation, anyway.
         | 
         | In a lot of large deployments, the CAD data isn't even stored
         | in files, but in a PLM database. For example PTC's WindChill
         | and Dassault's Enovia/3DX.
        
         | zokier wrote:
         | I recently tested SimScale with OnShape, i.e. cloud FEM with
         | cloud CAD. On the FEM side there was a button "import from
         | OnShape", which opened popup that did go through authz flow
         | ("do you want to allow SimScale to access your OnShape
         | content") and then proceeded to show a part/assembly selection
         | dialog. Reasonably smooth process considering that they are two
         | completely separate companies etc.
        
         | tranchebald wrote:
         | Yes. Make them a front end to project database you pay someone
         | to host. There is one source of truth for the whole team, front
         | ends are tailored to design disciplines, and development
         | branches are created as needed. This is an obvious product that
         | would be a major improvement that doesn't exist.
         | 
         | Bentley and Autodesk have a Frankenstein version of this
         | because they can't disrupt their revenue stream for CAD
         | software that stopped improving 20 years ago. iTwin (yes, the
         | branding is that bad) is an attempt to link cloud to local-
         | file-based work. ProjectWise was a first stab at that, which is
         | worse than plain network storage in every way except that CAD
         | managers don't have to be responsible for configuration
         | scripts.
        
         | abe_m wrote:
         | CAD companies are very protective of their file formats, and
         | use that as leverage to "encourage" companies to stay in their
         | eco system, and upgrade to the latest versions of their
         | software.
         | 
         | The main CAD program is often the center of use, and any
         | specialty functionality is a add-in to the main cad program
         | (FEA, CAM, etc).
         | 
         | If the specialty software is stand-alone, it still needs a CAD
         | Kernel to be able to work with the BREP, and there are
         | essentially only 2 main commercial kernels (Parasolid and
         | ASICs).
        
       | jlarocco wrote:
       | There doesn't seem to be any PMI, annotations, or views of any
       | kind?
        
       | sirjaz wrote:
       | Wouldn't this be better suited as a native app or as close to one
       | as you can using wasmr
        
       | rowanG077 wrote:
       | Having used a few 3D CAD systems nothing is as good as
       | solvespace. But when solvespace gets painful. It gets REALLY
       | painful. I wish there was a serious dev team working on just
       | solvespace.
        
       | nodesocket wrote:
       | Awesome, I literally just had this exact idea and started making
       | a prototype with Cursor AI but gave up after about an hour going
       | back and forth with AI not fixing bugs, or incorrectly
       | implementing what I described. Fixing an issue, and then Cursor
       | AI subsequently breaking it again.
       | 
       | Was going down the rabbit hole with TypeScript, React, and
       | three.js.
        
       | pyinstallwoes wrote:
       | I'm learning 3d and confused about what to focus on for hard
       | modeling. I just wanna make cool realistic spaceships. Should I
       | do cad or blender?
        
         | WillAdams wrote:
         | Perhaps Blender w/ CADsketcher?
         | 
         | https://www.cadsketcher.com/
         | 
         | Or maybe NASA's Vehicle Sketch Pad?
         | 
         | https://software.nasa.gov/software/LAR-17491-1
        
       | felixbraun wrote:
       | Just leaving this here -- you are up to something. Karpathy:
       | 
       | > Products with extensive/rich UIs lots of sliders, switches,
       | menus, with no scripting support, and built on opaque, custom,
       | binary formats are ngmi in the era of heavy human+AI
       | collaboration.
       | 
       | If an LLM can't read the underlying representations and
       | manipulate them and all of the related settings via scripting,
       | then it also can't co-pilot your product with existing
       | professionals and it doesn't allow vibe coding for the 100X more
       | aspiring prosumers.
       | 
       | Example high risk (binary objects/artifacts, no text DSL): every
       | Adobe product, DAWs, CAD/3D Example medium-high risk (already
       | partially text scriptable): Blender, Unity Example medium-low
       | risk (mostly but not entirely text already, some
       | automation/plugins ecosystem): Excel Example low risk (already
       | just all text, lucky!): IDEs like VS Code, Figma, Jupyter,
       | Obsidian, ...
       | 
       | AIs will get better and better at human UIUX (Operator and
       | friends), but I suspect the products that attempt to exclusively
       | wait for this future without trying to meet the technology
       | halfway where it is today are not going to have a good time.
       | 
       | https://x.com/karpathy/status/1930354382106964079?s=61
        
         | abe_m wrote:
         | That really seems like it is written by someone without any
         | experience using 3D CAD, particularly of the "make physical
         | stuff" variety, rather than the artistic movie and video game
         | asset variety.
         | 
         | English (or other human) language is pretty bad at describing
         | 3D geometry. People have been using drawings and physical 3D
         | models to describe designs going way back into antiquity. The
         | idea you can just use text suitable for a current-design LLM to
         | manipulate 3D technical data really seems like an idea from
         | someone who has never tried.
         | 
         | But also, Solidworks and Inventor (and I think NX) have
         | extensive API coverage that would allow an LLM to manipulate
         | the geometry data, if the LLM could figure out what the data
         | meant, and what it wants to do. If you can do it on screen with
         | a mouse and keyboard, you can likely do it over the API. An
         | add-in could certainly be written to accept requests for
         | information and instructions on api calls to make from an LLM.
        
       | bprater wrote:
       | Two CAD other projects using OpenCascade worth checking out:
       | Beegraphy and BitbyBit. Beegraphy uses the Rhino/Grasshopper
       | modeling style and BitbyBit sticks with Cascade's ethos.
        
       | djfobbz wrote:
       | Wow!! Killer UI I freaking love it.
        
       | racl101 wrote:
       | This is super rad.
        
       | mdip wrote:
       | So ... like ... WOW.
       | 
       | I read your description and thought, "some toy 3D project;
       | probably slow/lacking features." I mean, you did a fine job but
       | perhaps reading it in such a simple view made it lose something?
       | Not a critique on you, just an observation of myself.
       | 
       | I've looked at it all of a few minutes and this is pretty
       | fantastic. Quite fast, the UI seems relatively understandable
       | coming from other tools. Looks as clean as the rest, anyway.
       | 
       | And I've been annoyed that there's not Fusion 360 available
       | (supported, anyway) for OpenSUSE Tumbleweed ... you may have
       | saved me some grief with this, so thanks for that!
        
       | dvh wrote:
       | This dialog is untranslated in english version: Xuan Ze  Que Ding
       | Qu Xiao
        
       | guillaume_gomez wrote:
       | Amazing work ! Very good job
        
       | joeevans1000 wrote:
       | Awesome!! Thank you so very much.
        
       | boznz wrote:
       | It looks pretty good and I encourage you to keep up the good
       | work. you should also team up with a manufacturing or 3D printer
       | company (like EasyEDA did for PCB production) and make it as
       | simple as a few clicks to get your creation manufactured by
       | casual users.
        
         | nicr_22 wrote:
         | Might be worth getting in contact with the Slant3D folks, their
         | teleport 3d printing service might benefit from an integrated
         | editor?
        
       | kinard wrote:
       | Amazing.
        
       | tmaly wrote:
       | Are there any programmatic interfaces to this?
       | 
       | I was just thinking about how TinkerCad has block coding.
        
         | yehoshuapw wrote:
         | this isn't really answering your question,
         | 
         | however with opencascade working in webassembly here, perhaps
         | also cadquery and/or build123d can do something like that
        
       | Sheol27 wrote:
       | You did a great job! It looks promising, both for performance and
       | UI. There are many tools in the 3D market which are unable to
       | offer an intuitive and eye pleasing interface to work with.
       | 
       | Hope to see more projects like this one in the near future !
        
       | ge96 wrote:
       | Recently saw someone post this "city to 3D printer" for the web
       | and this is even better damn.
        
       ___________________________________________________________________
       (page generated 2025-06-10 23:00 UTC)