Readit News logoReadit News
Posted by u/xiange 3 months ago
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.

mdip · 3 months ago
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!

jasonthorsness · 3 months 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 · 3 months ago
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.

ssl232 · 3 months ago
Agreed, 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.
abe_m · 3 months ago
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.

inhumantsar · 3 months ago
I wish more companies, especially university spinoffs, did this when they failed.

It seems so wasteful that poor marketing or leadership or whatever can lock useful innovations up for years while people better able to execute on them reverse engineer the work and/or wait for patents to expire.

shash · 3 months ago
The corner cases are hard, but the basics shouldn't be. I'd normally expect several basic ones and a few good professional ones. But that's not what we see...
amelius · 3 months ago
Would love to read more about how these types of geometric problems are best approached.
phkahler · 3 months ago
>> 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.

snarfy · 3 months ago
We don't really have a lot of options as far as open source geometry kernels goes.

OpenCascade

CGAL

Is there anything else?

shash · 3 months ago
There's whatever's inside BRL-CAD, and SolveSpace has its own too.

Not that there are all that many proprietary 3D kernels either - ACIS, Parasolid, and...?

rcarmo · 3 months ago
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 · 3 months ago
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 · 3 months ago
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
thenthenthen · 3 months ago
Let the kids make websites?!

I love web based software (minus the logins). This saves soooo much time in a teaching environment. Time that can me used for teaching ideas, approaches, rather than struggling with compatibility issues.

phkahler · 3 months ago
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.
xiange · 3 months ago
The current version does not include this, but it will be available as parametric components in the future.
mft_ · 3 months ago
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.

the__alchemist · 3 months ago
Yep! Would love to try this once he or she adds parametric. We need good-quality reasonably-priced software in this domain.
joeevans1000 · 3 months ago
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 · 3 months ago
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.
tmjdev · 3 months ago
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.

Prime_Axiom · 3 months ago
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.
rowanG077 · 3 months ago
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.
tapia · 3 months ago
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 · 3 months ago
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 · 3 months ago
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

MaKey · 3 months ago
> This looks super nice! That is kind of the interface I wish FreeCAD could have.

What do you dislike about FreeCAD's interface?

tapia · 3 months ago
I think that the tools are not will organized, and I always have problems finding the tool I need in the menu. The concept of having different workbenches does not work good for me, as often I am looking for a tool and then realize I am in the wrong workbench. But it is not always clear why something is in a workbench and not in the other, and there are duplicated functions in some workbenches. Also, the fact that it does not support Wayland makes everything look blurry in hdpi screens. I like that it has a good python API though, but the documentation is a bit lacking. However, the different workbenches also sometimes complicate the use of the Python API. I like e.g. how build123d works.
mclau157 · 3 months ago
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
Double_a_92 · 3 months ago
- There are too many views whithout explanation of what they are

- By default the position of the tools and buttons is a chaotic mess

- There are things that seem to be the same but arent (e.g. Sketch from the "Part Design" and "Sketch" view)

- The 3D view is glitchy. The reflections make things invisible, AA is off by default, there is no proper Grid...

- The QT stylesheet is kinda ugly. If you literally delete it completely and revert to the default that QT has it looks much nicer.

- The settings are a bit messy and often it's not clear what they do.

Deleted Comment

syntaxing · 3 months ago
Absolutely 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.
piyush_soni · 3 months ago
Onshape 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. :)
syntaxing · 3 months ago
Documents being public is one thing. But I remember you guys changed the ToS at one point (I just looked it up, in 2016) where the verbiage is that Onshape owns the IP of these documents which is a huge no for me. I rather pay for solidworks hobbyist for $100 a year that comes with 3Dexperience which performs very similar to Onshape.
irrenhaus · 3 months ago
Taking the chance: As a hobbyist with a decent CNC with no intent of using it for commercial work: Linux "support" was driving me from Fusion to Onshape. CAM is driving me back to Fusion.

Please consider pushing the idea of having CAM for the hobbyist level in Onshape in your company, I know there's not much in revenue us hobbyists, but I'd gladly pay up to 20-50 per month for such a license. At least that's more money than 0 :).

Mashimo · 3 months ago
I 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.

zokier · 3 months ago
otoh onshape free tier feels very generous to me.