[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)