10 ms·
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 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.
- ge96 1y agoRecently saw someone post this "city to 3D printer" for the web and this is even better damn.
- tmjdev 1y agoVery 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 1y agoSometimes 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 1y ago>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/43161b9f51021f2ef255a41fd35460a9c3c9d494/packages/chili-builder/src/ribbon.ts 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?
- deleted 1y ago[deleted]
- johnwheeler 1y agoIf 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 1y agoI’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 1y agoNice 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 1y agoImpressive, 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 1y agoAs 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 1y agoChromebooks 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 1y agoIt 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.
- DaSHacka 1y ago> It doesn't train them how to use real computers, but that's not on the state standards so they don't care. Arguably, it really should be.
- 1y ago
- jasonthorsness 1y ago"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 1y agoI’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.
- ssl232 1y agoAgreed, FreeCAD 1.0 is finally almost usable and supports assemblies. My main issue with it is that the bill of materials tool was DOA but it’s fixed in the main branch. There are still lots of quirks but these can be learned in a few hours of using it.
- seltzered_ 1y agoWorth noting there's also a fork of FreeCAD (Astocad, made by a former Ondsel developer) with some UI enhancements: http://astocad.com/ http://astocad.com/
- Oxodao 1y agoI really like this pricing model, reminds me of aesprite. Either build it yourself for free, or pay us and we'll give you prebuilt binaries for convenience
- amelius 1y agoWould love to read more about how these types of geometric problems are best approached.
- tapia 1y agoThis 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 https://github.com/ricosjp/truck
- infogulch 1y agoCADmium is built with the Truck kernel, though it looks like CADmium has no repo activity since June '24. https://github.com/CADmium-Co/CADmium https://github.com/CADmium-Co/CADmium There's also the Fornjot kernel. https://github.com/hannobraun/Fornjot https://github.com/hannobraun/Fornjot
- ttouch 1y agoCadmium 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 1y agoThanks 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 1y agomeh, 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
- bee_rider 1y agoThis 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 1y agoI 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 1y agoNot 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 https://dev.opencascade.org/doc/overview/html/samples.html
- zokier 1y agoI think parent was referring to BRL-CAD, which is very much feels like a collection of cli tools ducktaped together.
- jlarocco 1y agoThere doesn't seem to be any PMI, annotations, or views of any kind?
- xiange 1y agoYes, these functions are not available yet.
- sirjaz 1y agoWouldn't this be better suited as a native app or as close to one as you can using wasmr
- rowanG077 1y agoHaving 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 1y agoAwesome, 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 1y agoI’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 1y agoPerhaps Blender w/ CADsketcher? https://www.cadsketcher.com/ https://www.cadsketcher.com/ Or maybe NASA's Vehicle Sketch Pad? https://software.nasa.gov/software/LAR-17491-1 https://software.nasa.gov/software/LAR-17491-1
- Double_a_92 1y agoSince I assume that spaceships are more an artistic thing, go for Blender.
- felixbraun 1y agoJust 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 https://x.com/karpathy/status/1930354382106964079?s=61
- deleted 1y ago[deleted]
- abe_m 1y agoThat 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.
- 1y ago
- bprater 1y agoTwo 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.
- deleted 1y ago[deleted]
- djfobbz 1y agoWow!! Killer UI I freaking love it.
- racl101 1y agoThis is super rad.
- mdip 1y agoSo ... 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 1y agoThis dialog is untranslated in english version: 选择 确定 取消
- xiange 1y agoOh, thanks! I will revise the translation.
- guillaume_gomez 1y agoAmazing work ! Very good job
- joeevans1000 1y agoAwesome!! Thank you so very much.
- fatih-erikli-cg 1y ago[dead]
- boznz 1y agoIt 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 1y agoMight be worth getting in contact with the Slant3D folks, their teleport 3d printing service might benefit from an integrated editor?
- kinard 1y agoAmazing.
- tmaly 1y agoAre there any programmatic interfaces to this? I was just thinking about how TinkerCad has block coding.
- yehoshuapw 1y agothis isn't really answering your question, however with opencascade working in webassembly here, perhaps also cadquery and/or build123d can do something like that
- bschwindHN 1y agoreplicad is my personal favorite: https://studio.replicad.xyz/workbench https://studio.replicad.xyz/workbench
- Sheol27 1y agoYou 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 !
- braunjohnson 1y ago[dead]
- syntaxing 1y agoAbsolutely amazing. I've been hoping for something that is similar to OnShape. I would absolutely pay in the hundreds for something like this. Its an absolute shame how expensive Onshape licenses are. There's no way I'm shelling 1k+ for a license.
- zokier 1y agootoh onshape free tier feels very generous to me.
- piyush_soni 1y agoOnshape employee here. I agree with another poster that for most "non-professional" requirements Onshape's free tier is all one should need - sure, the documents remain public if you don't pay. It's prohibitively expensive to maintain the technology stack with the complexity, scale and performance that Onshape does, and its costs a lot of money. :)
- Mashimo 1y agoI gravitate to open source, native or self hosted applications. But I have to say that onshape is really neat. I just do relative simple object for 3D printing, every few month. And onshape was easy to get into. From BRIO connectors for my nephews wooden train set, book binding helpers for a coworker, case for LED controllers .. easy peasy. Just fill pattern and text are always a struggle. But I just know, at some point Onshape will start charging us freeriders.
- piyush_soni 1y ago> But I just know, at some point Onshape will start charging us freeriders. - I don't know about that, may be, may be not, but I don't know of any such plan in the short term at least. It gives University students a free 'professional' license so there's that too. > Just fill pattern and text are always a struggle. Feel free to create a support ticket about your pain points. Everyone can easily do that, and Onshape is surprisingly more responsive to support tickets than many other companies.
- theanonymousone 1y agoNice work. It seems I cannot open stl files in it, right?
- xiange 1y agoThe deployed version can import STL files, but there are some limitations in use, such as being unable to snap feature points.
- jvojak 1y agoI have to say UI reminds me of the Microsoft products - but in a good way! Compared to an average 3D CAD application, what do you think is different? What was the reason behind developing such a tool?
- thenthenthen 1y agoWow it even almost works on mobile, impressive! (Booleans are not working on iOS it seems)