- Projeto open source que compila o OpenCascade para WebAssembly e o integra ao Three.js, implementando modelagem, edição e renderização 3D CAD no navegador com desempenho quase nativo
- Suporta diversos recursos de modelagem CAD, como criação de formas 3D como caixas, cilindros e sólidos de revolução, esboço 2D, operações booleanas, extrusão, loft, sweep e offset
- Oferece recursos de apoio para projeto e edição precisos, como snap de objeto/plano de trabalho, rastreamento de eixo, detecção automática de pontos característicos e guias visuais de tracking
- Inclui edição avançada como chamfer/fillet/trim/divisão, mover/rotacionar/espelhar, além de medição de comprimento/área/volume, gerenciamento de documentos e importação/exportação em formatos padrão da indústria (STEP, IGES, BREP)
- Entrega uma experiência voltada ao uso profissional com UI no estilo de suíte de escritório, gerenciamento hierárquico de assemblies, interface multilíngue (i18n, com suporte a chinês e inglês) e controle de viewport/câmera 3D
Visão geral
- Chili3D é um aplicativo open source de CAD 3D baseado em navegador desenvolvido em TypeScript
- Converte o OpenCascade (OCCT) para WebAssembly e o combina com Three.js para permitir modelagem/edição/renderização 3D de alto desempenho diretamente na web, sem instalação
Principais recursos
-
Ferramentas de modelagem
- Formas 3D básicas: criação de caixas, cilindros, cones, esferas, pirâmides etc.
- Esboço 2D: linhas, arcos, círculos, elipses, retângulos, polígonos, curvas Bézier
- Operações avançadas: booleanas (união, diferença, interseção), extrusão, revolução, sweep, loft, offset, criação de seções
-
Snap e tracking de precisão
- Snap de objeto: snap preciso em pontos geométricos característicos como pontos, arestas e faces
- Tracking de plano de trabalho/eixo, detecção automática de pontos característicos e guias visuais facilitam alinhamentos 3D complexos
-
Ferramentas de edição
- Arredondamento de arestas (fillet), chamfer, trim, divisão, mover, rotacionar, espelhar etc. para diversas edições 3D/2D
- Remoção de features, manipulação de subshapes e desmontagem de objetos compound como edição avançada
-
Medição e documentação
- Medição de ângulo e comprimento, cálculo de comprimento total/área/volume
- Criação/salvamento/carregamento de documentos, Undo/Redo completo e importação/exportação STEP/IGES/BREP
-
Interface do usuário
- Suporta organização de comandos no estilo de suíte de escritório, gerenciamento hierárquico de assemblies, plano de trabalho dinâmico, salvamento de posições de viewport/câmera 3D etc.
- Interface multilíngue (chinês e inglês), com estrutura i18n que permite contribuição de idiomas adicionais
Stack técnico
- Frontend: TypeScript, Three.js
- Engine 3D: OpenCascade (WebAssembly)
- Build: Rspack, testes: Jest
Status do desenvolvimento open source
- Está em fase Alpha, com API/recursos/documentação em melhoria contínua
- Há breaking changes, documentação incompleta e alguns recursos essenciais ainda não implementados
Contribuição e licença
- Contribuições open source como código, bugs e feedback são bem-vindas
- Licença AGPL-3.0 (consultas comerciais podem ser tratadas separadamente)
1 comentários
Comentários do Hacker News
No começo, li a descrição e achei que fosse só um projeto 3D comum, tipo um brinquedo, mas quando testei de fato foi uma surpresa e tanto. É extremamente rápido, e a UI parece bastante intuitiva até para quem veio de outras ferramentas. Sempre senti falta de poder usar o Fusion 360 no OpenSUSE Tumbleweed, e essa ferramenta parece que pode preencher esse vazio. Situação que dá até vontade de agradecer
Ao ver a parte de "usar o OpenCascade (OCCT) compilado em WebAssembly", fiquei curioso sobre qual kernel de geometria foi escolhido. As bibliotecas centrais de modelagem sólida, no fim das contas, são praticamente as mesmas de décadas atrás (o Parasolid tem quase 40 anos), o que faz pensar como deve ser difícil criar uma nova do zero
Trabalho com BREP para GIS, e mesmo no 2D, só com segmentos de linha simples, isso já vira um tipo de problema realmente complexo. É uma área em que surgem muitíssimos casos de exceção. Como sistemas de tipos ajudam bastante, se houver algum projeto open source baseado em Rust trabalhando nisso, parece algo bem promissor. Como referência, tentei migrar do Fusion 360 para o FreeCAD 1.0, e embora quase não tenha projetos no FreeCAD, a experiência foi de uma velocidade esmagadoramente maior
A estrutura matemática fundamental da geometria 3D praticamente não mudou ao longo do tempo. Se o custo de licenciamento de kernels como Parasolid ou ASICs não for alto, não existe muita necessidade de criar uma solução nova do zero. O mercado recente está numa tendência de consolidação por aquisições e fusões contínuas entre empresas de software CAD/CAM, como Autodesk e Hexagon. O próprio OpenCASCADE também era originalmente um software comercial, mas acabou virando open source porque não conseguiu conquistar clientes suficientes
Quase não existem kernels de geometria open source na prática. Os mais visíveis são OpenCascade e CGAL; fiquei curioso se existe mais algum
Gostaria de ler mais sobre como resolver bem esse tipo de problema geométrico
O nível é impressionante, mas ainda não está claro como eles pretendem implementar recursos como constraints e sketches. E o fato de ser um webapp é um pouco decepcionante. Ainda assim, estou aceitando isso como parte da mudança dos tempos
Do ponto de vista de quem usa Chromebook na escola, ter um webapp desses é excelente. Se os alunos conseguirem até imprimir em 3D, a variedade de ferramentas disponíveis aumenta muito. Mas, como professor e pai, me preocupa que crianças que só conhecem Chromebook acabem sem aprender sobre apps locais, sistema de arquivos etc. Quando meu filho faz um pôster, ele fica procurando imagens e copiando e colando entre várias ferramentas web, mas se eu digo que em apps desktop como Affinity ou Photoshop dá para fazer tudo de uma vez, ele simplesmente não consegue se identificar com isso, e essa sensação é curiosa
A versão atual ainda não tem esses recursos, mas eles devem ser adicionados no futuro na forma de componentes paramétricos
Mais do que a discussão sobre webapp, é preciso prestar atenção em como constraints, sketches e outros elementos de projeto paramétrico são importantes. Pessoalmente, acho que isso é um elemento central para um programa CAD ser levado a sério
Este é um caso que mostra que o navegador também pode se tornar tão poderoso quanto um app nativo. Por ser baseado em navegador, a dependência de SO desaparece, e engenheiros ou estudantes do mundo todo ganham muita facilidade para compartilhar e abrir arquivos. Em notebooks mais novos, a experiência chega a ser até mais rápida do que com apps nativos. Sem cadastro, e-mail, 2FA nem complicações, dá para começar a desenhar em 30 segundos. Em comparação com a maioria das outras ferramentas, ele tem vantagens em vários aspectos, incluindo custo. Depois de usar SketchUp, AutoCAD e Revit recentemente, encontrei essa ferramenta e fiquei realmente empolgado com o futuro dela
Os nomes dos ícones das ferramentas pareceram um pouco estranhos e pouco familiares. Por exemplo, seria melhor trocar "Bessel", "pour corner" e "From the cross section" por termos em inglês mais comuns no universo CAD. Durante o uso, o idioma mudou de repente para chinês, e como não havia um jeito fácil de voltar para o inglês, isso trouxe dificuldade
Acho um trabalho excelente. Especialmente em uma área dominada por poucas empresas, como Dassault e Autodesk, é sempre bom ver um projeto open source surgir. Também tenho expectativa com o surgimento da área de CAD com reconhecimento de contexto usando LLMs e outras IAs
É realmente impressionante. Eu vinha procurando continuamente algo parecido com o OnShape. Por uma ferramenta assim, eu pagaria com tranquilidade algumas centenas de dólares. Acho pesado pagar mais de 1.000 dólares por uma licença do OnShape
Como funcionário da OnShape, acho que, se o uso for real mas não comercial e não houver problema em manter os documentos públicos, a versão gratuita do OnShape já é suficiente. Hoje o stack tecnológico que sustenta, expande e garante a performance do OnShape é extremamente complexo, e o custo operacional também é considerável
Pessoalmente, o plano gratuito do OnShape também parece bem generoso
Gostei muito da interface. Seria ótimo se o FreeCAD tivesse algo nesse estilo. Pessoalmente, costumo criar modelos paramétricos pela interface em Python, mas esse projeto parece muito legal. Fico curioso se existe plano de implementar um CAD open source com o kernel do projeto Truck. O projeto atual Truck parece bastante promissor
O CADmium é baseado no kernel do Truck. Só que o CADmium não teve muita atividade desde junho de 2024; fica aqui o link para CADmium. E também existe o kernel do Fornjot
Fiquei curioso sobre o que exatamente você não gosta na interface do FreeCAD
Acho que é um projeto muito bem feito. Espero mesmo que continue evoluindo. Especialmente se ele formar parcerias com impressoras 3D ou fabricantes, como o EasyEDA fez na produção de PCBs, seria ótimo ver usuários comuns conseguindo levar seus designs à fabricação com apenas alguns cliques
Não é comum ver um projeto com esse nível de performance e UI ao mesmo tempo, então estou realmente animado. Programas 3D com uma interface intuitiva e visivelmente agradável são mais raros do que parece, então isso é muito bem-vindo. Espero que continuem surgindo mais projetos assim no futuro
A UI me lembra produtos da Microsoft, e isso até soa bastante positivo. Fiquei curioso sobre o que vocês consideram diferente em relação às ferramentas CAD 3D em geral e qual foi a motivação para criar algo assim