Development main integration (2026-10-12): selected local native SDK proof, 1218 Rust tests and 1066 native checks. Evidence and host requirements.
M02 selection / generic handles (2026-10-19): video-driven picking/Gumball and nested shared/mirrored occurrence paths now include canonical native BRep source and UUID topology mapping. The BRep batch passes 176 Rust tests, nine router tests and native BRep/Gumball replays on GPU 100/150% and painter 100%. Save/Open preserves source, topology IDs and placement; reopened OCCT box volume is 6000 mm³. Verified scope and limits. Planned external M02-UI reviewer acceptance remains pending; full M02 is not declared complete. Rotation angle overdraw was subsequently corrected and checked with 18 targeted Rust tests and native CPU/GPU replay (rotation fix).
Active direction (2026-10-19): M01 CAD Shell, Viewport supplies the foundation contracts; exact features use their OM9_Milestones owner. Standalone Rust OM9 owns the document/history/UI/scene, with selected OCCT/openNURBS adapters. Matrix9 milestone references and the approved workspace/layers contracts define UI behavior. Existing FreeCAD support tables/runtime reports below remain historical evidence.
Desktop viewports now use the GPU renderer by default; the CPU scene/shading fallback has been removed. A suitable GPU is required, while OCCT remains optional for the default app. GPU-only implementation, validation and approved rule.
Standalone foundation development (2026-10-14): crates/ (repository root) owns model/transactions/archive/scene and a native Matrix9 UI slice. The measured checkpoint has 360 workspace Rust tests plus 23 separately executed native integration tests. Execution evidence and remaining gates. Selected retained-current 3DM export verifies original/current records, units, frames, raw spans and dirty conservative bounds in a fresh process before atomic publication with an explicit loss report. Retained-current receipt. The S6 viewport title menu now has typed labels, scoped Maximize/Wireframe and protected keyboard/dismissal interaction; native menu evidence. Full Matrix9, native family/remapping, clipboard, archive and performance acceptance remain pending; all full RCORE-00 gates stay open. Build and launch; released plugin instructions below retain their legacy scope.
Owned Layers primitive checkpoint: 375 workspace tests pass; 15 focused checks are subsets, including an independent owned-process cold metadata reopen. Measured scope and pending panel/schema. Native/UI/exchange receipts above retain their earlier checkpoint.
Open-source jewelry CAD for FreeCAD. Rust owns the logic; FreeCAD provides native geometry and UI.
Development Box clarification (2026-10-12): default two opposite base corners then Height, optional four methods; staged wire preview in four views and Top-view height drag. Rust and native evidence.
Tiếng Việt · Installation · Releases
Support CAD, 3DM and jewelry tools. Contributions are voluntary. Thank you!
- PayPal: send to
nguyenthaiduy277@gmail.comthrough PayPal. - MoMo: recipient NGUYEN THAI DUY; scan the QR code below.
The current release targets Windows x64 and official FreeCAD 1.1.4. Using the package requires no FreeCAD source checkout, Rust or Visual Studio.
- Open the FreeCAD 1.1.4 release, download the Windows x64 installer and follow its installation steps.
- Start FreeCAD once. Check Help → About FreeCAD for version 1.1.4.
Its installation folder may be called
FreeCAD 1.1despite the patch version. - Save your projects and close FreeCAD before installing or replacing the OM9 plugin.
Open Release 0.3.5-202610121520, expand Assets and download SetupLauncher:
| File | Download |
|---|---|
| Launcher — recommended | OpenMatrix9-0.3.5-202610121520-SetupLauncher-Windows-x64.zip |
| SHA256 verification | SHA256SUMS.txt |
Source code downloads are for development; install OM9 using the SetupLauncher ZIP above. This release is marked Pre-release.
- Right-click the SetupLauncher ZIP → Extract All. Extract the entire bundle before opening the launcher.
- Keep
OpenMatrix9,launcher-manifest.jsonand allStart-OM9files together in the extracted folder. - Double-click
Start-OM9.cmd. - The launcher installs OM9 in
%APPDATA%\FreeCAD\v1-1\Mod\OpenMatrix9, creates OpenMatrix9 shortcuts on Desktop and in Start Menu, then opens the workbench. - Use the OpenMatrix9 shortcut afterwards. Once installation succeeds, the extracted download folder can be removed; the plugin is installed in AppData.
OM9 uses your user directory; Administrator access is unnecessary for the launcher or FreeCAD. If the launcher reports that the plugin is in use, save and close FreeCAD and retry. It leaves your running application open.
- Use the installed OpenMatrix9 shortcut, or open FreeCAD 1.1.4 and select OpenMatrix9 from the workbench selector.
- Create a document with File → New.
- Select Line, place two points, then try Undo and Redo.
- Check the sidebar, Command area, viewports and Layers panel. Disabled menu entries represent functionality still being developed.
- Save a
.FCStdproject. Finish or cancel a modeling command before changing documents.
To check which plugin was loaded, open View → Panels → Python console and enter:
import OpenMatrix9Gui
print(OpenMatrix9Gui.__file__)For this installation, the path should end in v1-1\Mod\OpenMatrix9\bin\OpenMatrix9Gui.pyd.
- Update: download the next Release's SetupLauncher, extract the complete
bundle, save and close FreeCAD, then run
Start-OM9.cmd. The launcher checks for updates in the background; downloading and installing remain explicit actions. - Previous installations: the launcher keeps them in
%APPDATA%\FreeCAD\v1-1\OM9-backups. To restore one, close FreeCAD, move the current plugin outsideMod, then place the chosen backup inMod\OpenMatrix9keeping the folder namedOpenMatrix9. - Launcher logs:
%APPDATA%\FreeCAD\v1-1\OM9-launcher. - Uninstall: close FreeCAD and move
OpenMatrix9outsideMod. Remove OM9 shortcuts if you no longer intend to use the installed launcher. Your saved.FCStdprojects remain intact.
Download SHA256SUMS.txt from the same Release. In PowerShell in Downloads:
Get-FileHash -LiteralPath '.\OpenMatrix9-0.3.5-202610121520-SetupLauncher-Windows-x64.zip' -Algorithm SHA256
Get-Content -LiteralPath '.\SHA256SUMS.txt'Compare Hash with the line for that exact ZIP in SHA256SUMS.txt.
| Symptom | Check |
|---|---|
| OpenMatrix9 is missing | FreeCAD 1.1.4, v1-1\Mod, InitGui.py, then restart. |
No module named OpenMatrix9Gui |
Rerun Start-OM9.cmd from the fully extracted SetupLauncher bundle. |
DLL load failed |
The Windows x64 package for FreeCAD 1.1.4; read the Report view message. |
| Missing icons or menus | The Resources directory and the complete package contents. |
3DM import worker is missing |
bin\OM9ThreeDmImportWorker.exe; re-extract it from the same ZIP if absent. |
| Launcher does not install | Keep OpenMatrix9, the manifest and Start-OM9 files together; inspect step 5 logs. |
| Update says files are in use | Save and close FreeCAD using OM9, then rerun the launcher. |
Open View → Panels → Report view for errors. Include the FreeCAD version, ZIP filename and panel message when reporting a problem. Match the plugin to its host; do not replace dependencies with DLLs from another FreeCAD version.
For developers: build OM9 against the shared SDK, in Vietnamese.
Gumball 0.3.5: Shift-click or window-select multiple objects to use one shared Gumball in all four views. Move, Scale and Rotate use the selection center; one Undo restores the whole batch. Local validation: 848 Rust tests, 31 native cases / 1,099 checks. Evidence. GitHub Actions builds and packages only.
In progress: Core/History — object lifecycle, rollback and resource budgets.
flowchart LR
A["Core & History<br/>In development"] --> B["CAD & 3DM<br/>Supported scope available"]
B --> C["Builders & Gems<br/>Incomplete"]
classDef active fill:#e8f2ff,stroke:#2563eb,color:#17376b
classDef available fill:#e6f6ef,stroke:#20845c,color:#14543b
classDef planned fill:#f3f4f6,stroke:#9ca3af,color:#4b5563
class A active
class B available
class C planned
Workspace snapshot: 2026-10-12. Counts describe validated supported scope, rather than full features. Identifiers can repeat across groups. Consult the Release for binary scope.
| Group | Done / Total | Progress |
|---|---|---|
| Quick tools | 3/11 | ▰▰▰▱▱▱▱▱▱▱ 27.3% |
| File | 5/13 | ▰▰▰▰▱▱▱▱▱▱ 38.5% |
| View | 10/15 | ▰▰▰▰▰▰▰▱▱▱ 66.7% |
| Utilities | 0/22 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Measure | 2/17 | ▰▱▱▱▱▱▱▱▱▱ 11.8% |
| Curve | 7/58 | ▰▱▱▱▱▱▱▱▱▱ 12.1% |
| Surface | 3/40 | ▰▱▱▱▱▱▱▱▱▱ 7.5% |
| Solid | 6/30 | ▰▰▱▱▱▱▱▱▱▱ 20.0% |
| Transform | 0/41 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Clayoo / SubD | 0/58 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Emboss | 0/7 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Builders | 0/16 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Jewelry tools | 1/31 | ▱▱▱▱▱▱▱▱▱▱ 3.2% |
| Gems | 0/35 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Settings | 0/12 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Cutters | 0/11 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Render | 0/23 | ▱▱▱▱▱▱▱▱▱▱ 0.0% |
| Core / project / selection | 5/11 | ▰▰▰▰▰▱▱▱▱▱ 45.5% |
| Additional display | 10/22 | ▰▰▰▰▰▱▱▱▱▱ 45.5% |
| Snaps / constraints | 4/17 | ▰▰▱▱▱▱▱▱▱▱ 23.5% |
| Properties / history / layers | 7/26 | ▰▰▰▱▱▱▱▱▱▱ 26.9% |
| 3DM / keyboard | 1/3 | ▰▰▰▱▱▱▱▱▱▱ 33.3% |
- Release 0.3.5-202610121520: changes, downloads and release-specific limitations.
- Development checkpoints: command tables, history and evidence moved from the README; includes Vietnamese notes.
- Ledger · Native reports · Milestone foundation.
LGPL-2.1-or-later · Third-party notices. OpenMatrix9 is an independent project using Matrix9 as a functional reference; it does not claim vendor affiliation, clean-room development or legal clearance. Source context.
Owned layer state schema4 checkpoint: 394 workspace tests/34 focused subsets; four bounded OM9 cold children; 8 separate SDK export tests/18 jobs. Measured scope. Actual Layers panel/CMD/current-output/modal/selection and full RCORE acceptance remain open. Older receipts below retain historical source checkpoints.
Owned Layers widget checkpoint: 414 workspace tests/37 focused subsets;13 actual native Layers checks and6 viewport-menu regressions, four bounded cold OM9 children. Measured scope. Advanced dialogs, other command families and full Layers/M9IMG/RCORE gates remain open; earlier SDK/UI receipts retain historical checkpoints.
Owned Advanced Rename/Color and selective Show now have measured modal evidence: 439 workspace tests/61 focused subsets;10 native dialog checks plus13 Layers and6 viewport regressions;five bounded cold OM9 children. The earlier unavailable-dialog limitation is historical for this owned-root slice. Token/session/stale guards, Cancel/no-op/Undo/Redo, bounded RGB and snapshot storage, fixed single-line rows and reusable UI owners are verified. Full Layer output families, interactive Save/Open, OS IME/DPI, async capture/global budgets and complete Layers/M9IMG/RCORE gates remain open.
Đã thêm service vòng đời File: 458 test workspace;17 ca controller và hai tiến trình OM9 mở lạnh mới. New/Open/Save/Save As có dirty, Save/Discard/Cancel, token từng phản hồi và atomic I/O. Menu/CMD/hộp chọn tệp File chưa bật; .3dm, persistence view/material và nghiệm thu toàn bộ File/RCORE còn tiếp tục. Ba replay native hiện có là hồi quy Layers/viewport, không phải nghiệm thu File UI.
Đã nối giao diện File native OM9: 475 test workspace,16 ca widget và8 kiểm tra File trong cửa sổ native;3 dialog Windows mở/hủy/đóng sạch. Đã sửa Enter lặp và IME chuyển focus có thể tự xác nhận Save/New. Chọn/lưu/mở thành công bằng OS, xử lý lỗi native, persistence đầy đủ, đóng cửa sổ chưa lưu và .3dm còn tiếp tục; toàn goal chưa hoàn tất.
Đã thêm adapter chọn tệp Win32: 483 test workspace; HRESULT lỗi được báo rõ, Cancel tách riêng và overwrite do token OM9 xác nhận. Replay Layers chờ focus thật và dừng khi dialog chưa mở;3 dialog Windows hủy/đóng sạch. Chọn/lưu/mở thành công bằng OS, startup từ tệp, budgets, close/async, persistence đầy đủ và .3dm vẫn tiếp tục; toàn goal chưa hoàn tất.
Đã nối luồng đóng cửa sổ khi chưa lưu qua Save/Discard/Cancel, kể cả nhánh thu nhỏ cửa sổ. 494 test workspace;2 yêu cầu WM_CLOSE thật và4 dialog Windows hủy sạch trong replay mới. Lưu lỗi hoặc hủy giữ tài liệu/bản nháp/cửa sổ. Goal đầy đủ vẫn đang thực hiện; chọn/lưu/mở thành công qua OS, startup, teardown/budgets/persistence/.3dm và các gate đầy đủ còn mở.
Đã kiểm chứng chọn/lưu/mở tệp qua Windows thật: 498 test workspace,3 đường dẫn được Show/GetResult trả về, SaveAs sang tệp khác chỉ nhận đường dẫn sau Replace và giữ nguyên SHA256 tệp gốc. Tiến trình mới chạy --ui path giữ đúng dữ liệu/đường dẫn/tiêu đề và bốn viewport. Goal đầy đủ tiếp tục: persistence hoàn chỉnh/.3dm, missing-module startup, teardown/budgets/async và các gate đầy đủ còn mở.

