Phân tích bộ công cụ LTplus-AG/ifc-lite: Xử lý dữ liệu BIM và dựng hình WebGPU trực tiếp trên trình duyệt

6 phút đọc

Trong xu hướng chuyển dịch các tác vụ tính toán đồ họa nặng từ máy chủ về phía người dùng, repository LTplus-AG/ifc-lite nổi lên như một giải pháp đột phá cho việc xử lý tệp tin IFC (Industry Foundation Classes) – định dạng dữ liệu cốt lõi trong lĩnh vực Mô hình thông tin công trình (BIM). Với 368 stars, 98 forks và bản cập nhật ghi nhận ngày 2026-09-09, dự án mã nguồn mở này cung cấp giải pháp phân tích, hiển thị, truy vấn và chỉnh sửa dữ liệu BIM hoàn toàn ở phía client mà không cần thông qua server trung gian.

Kiến trúc lõi kết hợp Rust-WASM và công nghệ đồ họa WebGPU

Điểm nhấn công nghệ của ifc-lite nằm ở sự kết hợp tối ưu giữa hiệu năng của ngôn ngữ Rust và khả năng đồ họa thế hệ mới của WebGPU. Bộ xử lý trung tâm của thư viện được viết bằng Rust và biên dịch sang WebAssembly (WASM) để đảm nhận các tác vụ nặng về phân tích cú pháp (parsing) và tính toán hình học. Trong khi đó, bộ dựng hình (renderer) ứng dụng công nghệ WebGPU để hiển thị trực tiếp mô hình 3D lên màn hình trình duyệt của người dùng.

Hệ thống xử lý hình học của thư viện hoạt động trên một nhân CSG (Constructive Solid Geometry) có độ chính xác số học tuyệt đối (exact-arithmetic). Nhân hình học này đã được kiểm chứng độ chính xác trên từng phần tử một bằng cách đối chiếu trực tiếp với công cụ IfcOpenShell thông qua bộ dữ liệu kiểm thử công cộng (public benchmark corpus). Về khả năng tương thích định dạng, dự án hỗ trợ đầy đủ các phiên bản IFC bao gồm IFC2X3, IFC4 / IFC4X3 và phiên bản mới IFC5 (IFCX). Người dùng có thể trải nghiệm trực tiếp thông qua bản demo chạy từ CDN tại trang web ifclite.com.

Hệ sinh thái mô-đun hóa cao và khả năng tích hợp linh hoạt

Thay vì xây dựng một thư viện nguyên khối cồng kềnh, nhóm phát triển đã chia nhỏ dự án thành một hệ sinh thái gồm 36 gói npm (TypeScript), 6 Rust crates trên trang crates.io và gói thư viện Python wheel ifclite-geom trên PyPI. Cấu trúc này cho phép các nhà phát triển lựa chọn chính xác các mô-đun cần thiết cho ứng dụng của mình để tối ưu hóa dung lượng tải về.

Đối với các nhà phát triển muốn tích hợp vào các công cụ đồ họa web hiện có, ifc-lite cung cấp sẵn các mẫu tích hợp (templates) cho hai thư viện 3D phổ biến là Three.js và Babylon.js. Quy trình trích xuất và phân tích hình học sẽ diễn ra đồng bộ, sau đó chuyển lưới tọa độ (meshes) trực tiếp cho các engine đồ họa này xử lý.

Đối với các nhu cầu truy vấn thuộc tính công trình phức tạp, dự án hỗ trợ thực thi các câu lệnh truy vấn SQL thông qua việc tích hợp DuckDB-WASM. Điều này giúp các nhà phát triển dễ dàng thực hiện các bộ lọc dữ liệu thuộc tính BIM trực quan ngay trên trình duyệt mà không cần cài đặt cơ sở dữ liệu cồng kềnh.

Giao diện dòng lệnh CLI và khả năng kết nối AI qua giao thức MCP

Bên cạnh việc hoạt động trên trình duyệt, toàn bộ bộ công cụ này còn có thể được vận hành độc lập thông qua giao diện dòng lệnh CLI (ifc-lite). CLI này hỗ trợ đầy đủ các tính năng kiểm tra (inspect), truy vấn (query), lập tiến độ (schedule), xác thực (validate), xuất dữ liệu (export), tạo mới (create), so sánh khác biệt (diff), kiểm tra va chạm (clash-check), hợp nhất (merge), chuyển đổi (convert) và viết kịch bản tự động hóa (script) cho các mô hình IFC mà không cần viết bất kỳ dòng mã ứng dụng nào.

Đặc biệt, nhằm đón đầu xu hướng xây dựng các công cụ hỗ trợ bởi trí tuệ nhân tạo (AI), dự án tích hợp sẵn máy chủ giao thức MCP (Model Context Protocol). Bằng cách khởi chạy lệnh ifc-lite mcp model.ifc (qua cổng stdio hoặc HTTP), các tác nhân AI (agents) có thể trực tiếp truy vấn và chỉnh sửa dữ liệu BIM. Người dùng cũng có thể đặt câu hỏi bằng ngôn ngữ tự nhiên thông qua lệnh ifc-lite ask model.ifc "how many walls?" để nhận câu trả lời nhanh chóng về số lượng cấu kiện trong mô hình.

Quy trình biên dịch mã nguồn và giấy phép bản quyền

Mã nguồn của dự án được phân phối dưới giấy phép MPL-2.0 (Mozilla Public License 2.0). Giấy phép này cho phép người dùng tự do sử dụng, chỉnh sửa và phân phối lại mã nguồn, tuy nhiên các tệp nguồn được sửa đổi dưới giấy phép MPL-2.0 bắt buộc phải được giữ nguyên mã nguồn mở theo đúng điều khoản của giấy phép này.

Về mặt kỹ thuật, do gói WASM được xây dựng lại từ thư mục chứa mã nguồn Rust trong mỗi lần build mới, nhà phát triển khi đóng góp dự án bắt buộc phải cài đặt công cụ Rust. Tệp cấu hình rust-toolchain.toml của dự án chỉ định rõ việc sử dụng kênh phát hành thử nghiệm (nightly channel) của Rust và đích biên dịch hướng tới là wasm32-unknown-unknown. Để phục vụ công tác kiểm thử hoặc chạy thử tải, các tệp mẫu IFC (fixtures) được lưu trữ riêng trên GitHub Release và quản lý thông qua tệp danh mục tests/models/manifest.json.

“Sự kết hợp giữa WebAssembly và WebGPU trong ifc-lite giúp giảm thiểu gánh nặng xử lý dữ liệu BIM cho máy chủ, chuyển hóa trình duyệt thành một môi trường làm việc 3D hiệu năng cao và có thể truy vấn trực tiếp bằng SQL hoặc AI.”

Những điểm còn bỏ ngỏ về mặt hiệu năng trên thiết bị cấu hình thấp

Mặc dù tài liệu của dự án nhấn mạnh khả năng tối ưu hóa thông qua các bộ dữ liệu benchmark công cộng, nhà phát triển vẫn chưa công bố cụ thể giới hạn dung lượng tệp tin IFC tối đa hoặc số lượng đa giác mà trình duyệt có thể chịu tải mượt mà trước khi xảy ra hiện tượng tràn bộ nhớ (out of memory). Ngoài ra, việc dự án phụ thuộc vào kênh Rust nightly để biên dịch sang WebAssembly cũng là một điểm cần lưu ý, bởi các cập nhật liên tục của phiên bản thử nghiệm này có thể gây ra những lỗi biên dịch không mong muốn khi triển khai tự động trong các hệ thống CI/CD nếu không khóa cứng phiên bản công cụ cụ thể.

Nguồn tham khảo: Xem bài gốc

📆
Âm Lịch: 17/8
Giáp Thìn

📆 Lịch Âm Dương NsN

×
Hôm Nay - Chủ Nhật
Âm Lịch: 17 Tháng 8
Năm Bính Ngọ
📌 Ngày Can Chi: Giáp Thìn
✨ Giờ Hoàng Đạo: Dần (3-5), Thìn (7-9), Tỵ (9-11), Thân (15-17), Dậu (17-19), Hợi (21-23)
Vĩnh Phúc (Liên Bảo - Vĩnh Yên)
27°C
Nắng Đẹp
💧 83% | 💨 15 km/h
Hôm nay 33°
29/09 34°
30/09 33°
01/10 31°
02/10 31°