ZIMA-CAD is developed as a C++/Qt application with OCCT used only for explicit
solid-model calculations. The active implementation lives in cpp/.
The C++ build requires CMake 3.24+, a C++20 compiler, Qt 6.5+ (Core, Gui, Widgets, OpenGL, OpenGLWidgets and Svg), OpenCASCADE 7.9+, and nlohmann_json 3.11+. On Windows, use the pinned vcpkg setup through the repository script:
./tools/build-windows.ps1 -Configuration Release
./zima-cad.bat -w ProjectsLinux dependency setup is pending replacement of the removed Conda SDK. The
linux-runtime-* presets still reference that absent directory and are not a
ready-to-run recipe. Follow the Linux handoff
on Linux to select compatible native Qt/OCCT dependencies and verify the build.
Do not lower dependency version checks to fit an older installed kernel.
The root launchers zima-cad and zima-cad.bat start the C++ application.
They prefer a Release build and fall back to the Debug build.
On Windows, run tools/create-windows-shortcut.ps1 after building to create
(or refresh) the desktop shortcut. It targets the GUI executable directly and
opens no console. The batch launcher starts the application without waiting;
for command-line verification invoke the executable directly.
Run tools/register-windows-file-types.ps1 to register double-click opening
for the current Windows user. Every external file launch and Window > New
Window starts an independent, numbered process. See
Multiple instances.
The planned release form is one self-contained portable Linux and Windows
archive with its complete runtime, resources, directory layout and portable
settings. The distribution contract is documented in
doc/PORTABLE_RELEASE.md.
The zima-cad-cli executable runs the shared CAD commands without a desktop window.
It still uses Qt for graphics and export, including an offscreen platform.
The Windows build script builds it alongside the desktop application:
./tools/build-windows.ps1 -Configuration Release
& ./build/cpp-windows-release/zima-cad-cli.exe --help
& ./build/cpp-windows-release/zima-cad-cli.exe --working-directory ./Projects --command "documents"Use repeated --command, a UTF-8 --script, or --stdin. Each command returns
one JSON object on stdout; diagnostics use stderr. Batches stop on the first
error by default and never save implicitly. box.create, box.get and box.set
create, inspect and resize a Box through the same model transaction as its GUI
properties, including locks and Undo/Redo. The same create/get/set commands are
available for cylinder, sphere, cone, pyramid and wedge. Command dimensions are
explicitly in mm.
See CLI usage and configuration.
The desktop console also supports codex mode. Configure your own ChatGPT account
in Settings > AI. Requests follow the active Part, Assembly or Drawing tab;
changes are reviewed inline and executed through the same CAD commands.
See AI console setup and behavior.
The Python implementation was removed on 2026-09-15 at the user's request. Historical source remains in Git; it is not a supported application or release input. C++ is the only product implementation. Python may still be used as a developer tool, without becoming an application dependency.
The old Conda runtime was removed after Windows verification. The Linux development presets still require replacement of their obsolete dependency path; a fresh Linux build awaits that native SDK setup. See the versioned distribution and cleanup plan.
cmake --build build/cpp-debug
ctest --test-dir build/cpp-debug --output-on-failureSee native architecture, native behavior and Linux release handoff.
Current modeling tools and interaction contracts:
- User manual
- Holes from Sketch segments
- Automatic/manual work planes
- Assembly rotation arm
- Shared GUI/CLI command coverage
- View geometry measurement and persisted measurements
- IGES/DXF import into Parts and Assemblies
- STEP import and export
- Multibody Part and Boolean operations
- Mirror and Pattern: linked body and component copies
- Save As: model and drawing copies
- Surface Extrusion and Revolution
- Application tools, Insert menu and document tabs
- Sheet Metal defaults and planned Bend
- 3D Sweep: Loft, Thin, and trajectory references
- Threaded openings
- External shaft threads
- Helical Sweep
- 2D Sweep: planar paths, Loft, and Thin
- View and Tree highlighting
- History reordering
- Sketch constraint activity
- Drawing templates, embedded PNG/SVG logos, and BOM regions
- Numeric value locks and one-shot reference capture
- Czech, English, German, French, and Russian UI translations
- Mass, material density, document units, and Parameters
All project documentation must be maintained in English. See the binding documentation language rule.