- Proyecto de código abierto que compila OpenCascade a WebAssembly y lo integra con Three.js para lograr modelado, edición y renderizado CAD 3D en el navegador con un rendimiento casi nativo
- Compatible con diversas funciones de modelado CAD, como creación de formas 3D, incluidas cajas, cilindros y sólidos de revolución; bocetos 2D; operaciones booleanas; extrusión, loft y sweep; y offset
- Ofrece funciones de asistencia para diseño y edición de precisión, como snap de objetos/planos de trabajo, seguimiento de ejes, detección automática de puntos característicos y guías visuales de seguimiento
- Incluye edición avanzada como chamfer/fillet/trim/división y mover/rotar/espejar, además de medición de longitud, área y volumen, gestión de documentos y funciones integradas de importación/exportación en formatos estándar de la industria (STEP, IGES, BREP)
- Brinda una experiencia de usuario orientada al trabajo profesional con interfaz estilo suite ofimática, gestión jerárquica de ensamblajes, interfaz multilingüe (i18n, con soporte para chino e inglés) y control de viewport/cámara 3D
Resumen
- Chili3D es una aplicación CAD 3D de código abierto basada en el navegador desarrollada en TypeScript
- Convierte OpenCascade (OCCT) a WebAssembly y lo combina con Three.js para permitir modelado/edición/renderizado 3D de alto rendimiento directamente en la web, sin instalación
Funciones principales
-
Herramientas de modelado
- Formas 3D básicas: creación de cajas, cilindros, conos, esferas, pirámides, etc.
- Bocetos 2D: líneas, arcos, círculos, elipses, rectángulos, polígonos y curvas Bézier
- Operaciones avanzadas: booleanas (unión, diferencia, intersección), extrusión, revolución, sweep, loft, offset y generación de secciones
-
Snap y tracking de precisión
- Object snap: ajuste preciso a puntos, aristas, caras y otras características geométricas
- Tracking de plano de trabajo/ejes, detección automática de puntos característicos y guías visuales para facilitar alineaciones 3D complejas
-
Herramientas de edición
- Redondeo de bordes (fillet), chamfer, trim, división, mover, rotar, espejo, etc. para diversas ediciones 3D/2D
- Edición avanzada como eliminación de features, manipulación de subshapes y descomposición de objetos compuestos
-
Medición y documentación
- Medición de ángulos y longitudes, cálculo de longitud total/área/volumen
- Creación/guardado/carga de documentos, Undo/Redo completo e importación/exportación STEP/IGES/BREP
-
Interfaz de usuario
- Soporte para organización de comandos estilo suite ofimática, gestión jerárquica de ensamblajes, plano de trabajo dinámico y guardado de posiciones de viewport/cámara 3D
- Interfaz multilingüe (chino e inglés), con estructura i18n que permite contribuir con idiomas adicionales
Stack tecnológico
- Frontend: TypeScript, Three.js
- Motor 3D: OpenCascade (WebAssembly)
- Build: Rspack, pruebas: Jest
Estado actual del desarrollo open source
- En fase alpha, con mejoras continuas en API, funciones y documentación
- Hay cambios incompatibles, documentación incompleta y algunas funciones esenciales aún no implementadas
Contribuciones y licencia
- Se agradecen contribuciones de código, bugs y feedback
- Licencia AGPL-3.0 (consultas comerciales por separado)
1 comentarios
Opiniones de Hacker News
Al principio, al leer la descripción, pensé que sería solo un proyecto 3D de juguete bastante común, pero al probarlo fue una experiencia sorprendente. Es rapidísimo y la UI se siente bastante intuitiva incluso viniendo de otras herramientas. Siempre me dio pena no poder usar Fusion 360 en OpenSUSE Tumbleweed, pero parece que esta herramienta podría llenar ese vacío. Me siento agradecido
Al ver la parte de "usar OpenCascade (OCCT) compilado a WebAssembly", me dio curiosidad qué kernel geométrico habían elegido. Las bibliotecas centrales de modelado sólido en realidad son casi las mismas de hace décadas (Parasolid tiene casi 40 años), y eso hace pensar que crear una nueva debe ser realmente difícil
Trabajo con BREP para GIS, y ya en 2D, solo con segmentos de línea simples, aparecen problemas realmente complejos. Es un área donde surgen muchísimos casos excepcionales. El sistema de tipos ayuda mucho, así que si hubiera un proyecto open source basado en Rust para esto, sería muy prometedor. Como referencia, probé pasar de Fusion 360 a Freecad 1.0, y aunque casi no tenía proyectos, la mejora de velocidad en Freecad fue abrumadora
La estructura matemática fundamental de la geometría 3D casi no ha cambiado en mucho tiempo. Si el costo de licencia de kernels como Parasolid o ASICs no es tan alto, en realidad no hay mucha necesidad de crear una solución nueva desde cero. Últimamente el mercado sigue consolidándose por adquisiciones y fusiones entre empresas de software CAD/CAM como Autodesk y Hexagon. OpenCASCADE también era originalmente software comercial, pero terminó convirtiéndose en open source al no conseguir suficientes clientes
En realidad casi no existen kernels geométricos open source. Los más visibles son OpenCascade y CGAL; me pregunto si habrá más
Me gustaría leer más sobre cómo resolver bien este tipo de problemas geométricos
Es de un nivel impresionante, aunque todavía no se ve bien cómo implementan funciones como constraints o sketches. Y que haya salido como webapp me deja un poco de pena. Aun así, lo tomo como parte del cambio de los tiempos
Desde la perspectiva de alguien que usa Chromebook en la escuela, tener una webapp así es una maravilla. Si además los estudiantes pueden llegar a imprimir en 3D, se amplía muchísimo el abanico de herramientas que pueden elegir. Eso sí, como docente y padre, me preocupa que los niños que solo han usado Chromebook no lleguen a conocer las apps locales, el sistema de archivos, etc. Cuando mi hijo hace un póster, busca imágenes y las copia y pega entre varias herramientas web, pero si le digo que en apps de escritorio como Affinity o Photoshop puede hacer todo de una sola vez, no logra identificarse en absoluto, y esa sensación es curiosa
Esa función todavía no existe en la versión actual, pero está previsto añadirla más adelante en forma de componentes paramétricos
Más que la parte de que sea webapp, habría que poner más atención en lo importantes que son el diseño paramétrico, como constraints y sketches. Personalmente, creo que eso es un elemento clave para que un programa CAD sea tomado en serio
Es un caso que demuestra que el navegador puede volverse tan potente como una app nativa. Al estar basado en navegador, desaparece la dependencia del OS, y hay una gran ventaja en que ingenieros o estudiantes de todo el mundo puedan compartir y abrir archivos con facilidad. En laptops nuevas, incluso se siente más rápido que una app nativa. Puedes empezar a dibujar en 30 segundos, sin registro, correo, 2FA ni otras complicaciones. Frente a la mayoría de las demás herramientas, tiene ventajas en costo y en muchos otros aspectos. Últimamente he estado usando SketchUp, AutoCAD y Revit, y al encontrar esta herramienta me emocionó mucho pensar en su futuro
Los nombres de los íconos de herramientas me parecieron algo extraños y poco familiares. Por ejemplo, haría falta cambiarlos a términos en inglés más comunes en CAD, como "Bessel", "pour corner" o "From the cross section". Mientras la usaba, el idioma cambió de repente a chino, y como no había una forma fácil de volver a inglés, fue complicado
Me parece un trabajo excelente. Siempre da gusto ver proyectos open source en un campo dominado por unas pocas empresas como Dassault y Autodesk. También ilusiona el surgimiento del CAD con conciencia de contexto a partir del uso reciente de LLM y otras herramientas de AI
Es realmente increíble. Llevaba tiempo buscando algo parecido a OnShape. Por una herramienta así, pagaría con gusto varios cientos de dólares. La licencia de OnShape es demasiado cara, y pagar más de 1,000 dólares me parece pesado
Como empleado de OnShape, creo que si el uso real no es comercial y no te importa que los documentos sean públicos, la versión gratuita de OnShape es más que suficiente. Hoy en día, el stack tecnológico que sostiene, escala y garantiza el rendimiento de OnShape es extremadamente complejo, y los costos operativos también son considerables
En lo personal, el plan gratuito de OnShape también me parece bastante generoso
Me gusta muchísimo la interfaz. Ojalá FreeCAD tuviera algo de este estilo. En mi caso prefiero crear modelos paramétricos con una interfaz de Python, pero este proyecto me parece bastante genial. Me pregunto si está previsto implementar el kernel CAD del proyecto Truck como un CAD open source. El proyecto actual Truck se ve muy prometedor
CADmium está basado en el kernel de Truck. Eso sí, CADmium no ha tenido mucha actividad desde junio de 2024; por referencia, aquí está el enlace a CADmium. También está el kernel Fornjot
Me da curiosidad saber específicamente qué es lo que no te gusta de la interfaz de FreeCAD
Me parece un proyecto realmente muy bien hecho. Ojalá siga evolucionando. En especial, igual que EasyEDA colaboró con fabricantes para producción de PCB, me gustaría que se asociaran con impresoras 3D o fabricantes (por ejemplo, EasyEDA) para que usuarios comunes puedan llevar sus diseños a fabricación con solo unos cuantos clics
No es común ver un proyecto que reúna este nivel de rendimiento y UI al mismo tiempo, así que me tiene muy entusiasmado. Hay menos programas 3D de los que uno pensaría con una interfaz intuitiva y claramente agradable a la vista, así que da mucho gusto verlo. Ojalá sigan apareciendo muchos proyectos así
La UI me recuerda a productos de Microsoft, y curiosamente eso se siente bastante positivo. Me da curiosidad saber qué creen que la diferencia de las herramientas 3D CAD típicas y cuál fue la motivación para crear algo así