- Dự án mã nguồn mở biên dịch OpenCascade sang WebAssembly và tích hợp với Three.js để hiện thực hóa mô hình hóa, chỉnh sửa và kết xuất 3D CAD trên trình duyệt với hiệu năng gần mức native
- Hỗ trợ nhiều tính năng mô hình hóa CAD như tạo hình khối 3D, phác thảo 2D, phép toán boolean, extrude·loft·sweep, offset và hơn thế nữa
- Cung cấp các tính năng hỗ trợ thiết kế và chỉnh sửa chính xác như bắt dính object/workplane, bám trục, tự động phát hiện điểm đặc trưng và hướng dẫn theo dõi trực quan
- Tích hợp sẵn các chức năng chỉnh sửa nâng cao như chamfer/fillet/trim/chia tách, di chuyển/xoay/mirror, đo chiều dài·diện tích·thể tích, quản lý tài liệu và nhập/xuất các định dạng tiêu chuẩn công nghiệp (STEP, IGES, BREP)
- Mang lại trải nghiệm người dùng hướng tới công việc thực tế với UI kiểu office, quản lý assembly phân cấp, giao diện đa ngôn ngữ (i18n, hỗ trợ tiếng Trung và tiếng Anh), điều khiển viewport/camera 3D
Tổng quan
- Chili3D là ứng dụng CAD 3D mã nguồn mở chạy trên trình duyệt được phát triển bằng TypeScript
- Bằng cách chuyển OpenCascade (OCCT) sang WebAssembly và kết hợp với Three.js, công cụ cho phép mô hình hóa/chỉnh sửa/kết xuất 3D hiệu năng cao trực tiếp trên web mà không cần cài đặt
Tính năng chính
-
Công cụ mô hình hóa
- Hình khối 3D cơ bản: tạo box, cylinder, cone, sphere, pyramid...
- Phác thảo 2D: đường thẳng, cung, đường tròn, ellipse, hình chữ nhật, đa giác, đường cong Bézier
- Phép toán nâng cao: boolean (hợp, hiệu, giao), extrude, revolve, sweep, loft, offset, tạo mặt cắt
-
Bắt dính và tracking chính xác
- Object snap: bắt chính xác vào các đặc trưng hình học như điểm, cạnh, mặt
- Dễ dàng thực hiện căn chỉnh 3D phức tạp nhờ tracking workplane/trục, tự động phát hiện điểm đặc trưng và hướng dẫn trực quan
-
Công cụ chỉnh sửa
- Nhiều thao tác chỉnh sửa 3D/2D như bo tròn cạnh (fillet), chamfer, trim, chia tách, di chuyển, xoay, mirror
- Chỉnh sửa nâng cao như xóa feature, thao tác sub-shape, tách rời compound object
-
Đo đạc và tài liệu hóa
- Đo góc·chiều dài, tính tổng chiều dài/diện tích/thể tích
- Tạo/lưu/mở tài liệu, Undo/Redo đầy đủ, nhập/xuất STEP/IGES/BREP
-
Giao diện người dùng
- Hỗ trợ bố cục lệnh kiểu office, quản lý assembly phân cấp, workplane động, lưu vị trí viewport/camera 3D
- Giao diện đa ngôn ngữ (tiếng Trung·tiếng Anh), có cấu trúc i18n để cộng đồng đóng góp thêm ngôn ngữ
Tech stack
- Frontend: TypeScript, Three.js
- Engine 3D: OpenCascade (WebAssembly)
- Build: Rspack, test: Jest
Tình trạng phát triển mã nguồn mở
- Hiện ở giai đoạn alpha, API/tính năng/tài liệu vẫn đang tiếp tục được cải thiện
- Vẫn có breaking change, tài liệu chưa hoàn thiện và một số tính năng thiết yếu chưa được triển khai
Đóng góp và giấy phép
- Hoan nghênh đóng góp mã nguồn/bug/phản hồi cho dự án mã nguồn mở
- Giấy phép AGPL-3.0 (có thể liên hệ riêng cho nhu cầu thương mại)
1 bình luận
Ý kiến Hacker News
Lúc đầu đọc mô tả tôi nghĩ đây chắc chỉ là một dự án đồ chơi 3D bình thường, nhưng dùng thử rồi thì thật sự bất ngờ. Nó cực nhanh, và UI cũng khá trực quan ngay cả với người chuyển từ công cụ khác sang. Tôi luôn thấy tiếc vì không thể dùng Fusion 360 trên OpenSUSE Tumbleweed, nên có vẻ công cụ này có thể lấp chỗ trống đó. Cảm giác rất biết ơn.
Khi thấy đoạn “biên dịch OpenCascade (OCCT) sang WebAssembly để sử dụng”, tôi khá tò mò họ đã chọn geometry kernel nào. Các thư viện solid modeling cốt lõi thực ra gần như đều là những thứ đã được dùng từ vài chục năm trước rồi (Parasolid thì gần 40 năm tuổi), nên càng thấy việc làm mới từ đầu chắc hẳn khó kinh khủng.
Tôi đang làm với BREP cho mục đích GIS, và đây là một dạng bài toán cực kỳ phức tạp ngay cả khi chỉ là các đoạn thẳng đơn giản trong 2D. Đây là lĩnh vực phát sinh vô số trường hợp ngoại lệ. Hệ thống kiểu giúp ích rất nhiều, nên nếu có dự án mã nguồn mở nào làm trên nền Rust thì sẽ rất đáng hy vọng. Nhân tiện, tôi đã thử chuyển từ Fusion 360 sang Freecad 1.0, và dù Freecad gần như không có dự án nào, trải nghiệm là nó nhanh hơn hẳn.
Cấu trúc toán học nền tảng của hình học 3D về cơ bản đã không thay đổi nhiều trong thời gian dài. Nếu chi phí giấy phép của các kernel như Parasolid hay ASICs không quá cao, thì cũng không có nhiều lý do để phải xây một giải pháp hoàn toàn mới. Thị trường gần đây cũng có xu hướng các công ty phần mềm CAD/CAM như Autodesk và Hexagon tiếp tục bị hợp nhất qua các thương vụ mua bán sáp nhập. OpenCASCADE ban đầu cũng là phần mềm thương mại, nhưng vì không thu hút đủ khách hàng nên cuối cùng đã chuyển sang mã nguồn mở.
Thực sự gần như không có geometry kernel mã nguồn mở nào. Nổi bật nhất tôi biết chỉ có OpenCascade và CGAL, không rõ còn cái nào khác nữa không.
Tôi muốn đọc thêm về cách người ta giải quyết tốt những bài toán hình học kiểu này.
Mức độ hoàn thiện thật đáng kinh ngạc, nhưng tôi vẫn chưa thấy rõ họ triển khai các tính năng như constraints hay sketches như thế nào. Và việc nó là web app cũng hơi đáng tiếc. Dù vậy, tôi đang cố xem đây là xu hướng thay đổi của thời cuộc.
Ở góc độ một người dùng Chromebook trong trường học, việc có một web app như thế này là điều cực kỳ tuyệt vời. Nếu học sinh còn có thể in ra bằng máy in 3D thì phạm vi công cụ các em có thể dùng sẽ rộng hơn rất nhiều. Tuy nhiên, với tư cách giáo viên và phụ huynh, tôi cũng lo rằng những đứa trẻ chỉ lớn lên cùng Chromebook sẽ không biết gì về ứng dụng cục bộ, hệ thống tệp, v.v. Khi con tôi làm poster, nó tìm ảnh rồi cứ sao chép-dán qua lại giữa nhiều công cụ web, nhưng khi tôi nói rằng với ứng dụng desktop như Affinity hay Photoshop thì có thể làm tất cả cùng lúc, nó hoàn toàn không thấy điều đó có ý nghĩa gì, và cảm giác ấy khá kỳ lạ.
Ở phiên bản hiện tại vẫn chưa có các tính năng đó, nhưng sau này sẽ được thêm vào dưới dạng parametric component.
So với chuyện web app, có lẽ cần chú ý nhiều hơn đến việc parametric design với constraints và sketches quan trọng đến mức nào. Cá nhân tôi thấy đây mới là yếu tố cốt lõi để một chương trình CAD được xem là nghiêm túc.
Đây là một ví dụ cho thấy trình duyệt cũng có thể mạnh chẳng kém gì ứng dụng native. Vì chạy trên trình duyệt nên không còn phụ thuộc OS, đồng thời kỹ sư hay sinh viên trên khắp thế giới có thể chia sẻ hoặc mở tệp rất dễ dàng. Trên laptop mới thậm chí còn cho cảm giác nhanh hơn cả ứng dụng native. Không cần đăng ký, email hay 2FA rắc rối, chỉ mất 30 giây là có thể bắt đầu vẽ. So với hầu hết công cụ khác, nó có lợi thế ở nhiều mặt như chi phí. Gần đây tôi dùng SketchUp, AutoCAD, Revit rồi mới phát hiện ra công cụ này, và thật sự rất háo hức về tương lai của nó.
Tên các biểu tượng công cụ có phần hơi lạ và không quen thuộc. Ví dụ như “Bessel”, “pour corner”, “From the cross section” nên được đổi sang các thuật ngữ tiếng Anh thường dùng trong CAD. Trong lúc sử dụng, ngôn ngữ đột nhiên chuyển sang tiếng Trung, nhưng lại không có cách dễ dàng để chuyển lại sang tiếng Anh nên khá khó xử.
Tôi nghĩ đây là một công trình rất tuyệt vời. Đặc biệt, cứ mỗi lần thấy một dự án mã nguồn mở xuất hiện trong lĩnh vực bị một số ít hãng như Dassault, Autodesk thống trị, tôi lại rất mừng. Gần đây tôi cũng kỳ vọng vào việc với LLM và AI, một lĩnh vực CAD nhận biết ngữ cảnh sẽ xuất hiện.
Thật sự quá ấn tượng. Tôi vẫn luôn tìm kiếm một sản phẩm kiểu giống OnShape. Nếu là công cụ như thế này thì tôi sẵn sàng trả vài trăm đô. Tôi thấy bỏ hơn 1.000 USD cho giấy phép OnShape là quá nặng.
Với tư cách là nhân viên OnShape, tôi nghĩ nếu mục đích sử dụng thực tế là phi thương mại và bạn không ngại tài liệu ở chế độ công khai, thì bản miễn phí của OnShape là đủ dùng. Hiện tại stack công nghệ mà OnShape dùng để đảm bảo khả năng vận hành, mở rộng và hiệu năng là cực kỳ phức tạp, và chi phí vận hành cũng rất lớn.
Cá nhân tôi cũng thấy gói miễn phí của OnShape là rất hào phóng.
Tôi rất thích giao diện này. Ước gì FreeCAD cũng có một kiểu như vậy. Cá nhân tôi thích cách tạo mô hình tham số bằng giao diện Python, nhưng dự án này trông thật sự khá ngầu. Tôi cũng tò mò liệu CAD kernel của dự án Truck có được hiện thực hóa thành một CAD mã nguồn mở hay không. Dự án hiện tại là Truck trông rất triển vọng.
CADmium được xây dựng trên Truck kernel. Tuy nhiên CADmium không có nhiều hoạt động kể từ tháng 6 năm 2024; tham khảo thêm tại CADmium. Ngoài ra còn có Fornjot kernel.
Tôi muốn biết cụ thể bạn không thích điểm nào ở giao diện của FreeCAD.
Tôi nghĩ đây là một dự án được làm rất tốt. Hy vọng nó sẽ tiếp tục phát triển. Đặc biệt, giống như EasyEDA đã hợp tác với nhà sản xuất cho mảng sản xuất PCB, tôi hy vọng họ có thể bắt tay với các máy in 3D hoặc nhà sản xuất (ví dụ như EasyEDA) để người dùng phổ thông chỉ cần vài cú nhấp chuột là có thể đưa thiết kế của mình vào sản xuất.
Hiếm có dự án nào vừa có hiệu năng vừa có UI ở mức này, nên tôi thật sự rất kỳ vọng. Chương trình 3D có giao diện trực quan và nhìn bắt mắt thực ra ít hơn người ta tưởng rất nhiều, nên thấy điều này thật đáng mừng. Mong rằng sau này sẽ còn có thêm nhiều dự án như thế.
UI làm tôi nhớ tới các sản phẩm của Microsoft, và điều đó lại mang cảm giác khá tích cực. Tôi tò mò họ nghĩ công cụ này khác gì so với các công cụ CAD 3D thông thường, và động lực nào đã khiến họ tạo ra nó.