Modular CAD architecture with:
kernel: C geometric kernel, built as a shared library (mtcad_kernel.dllon Windows) using libuv as core librarygui: C++ desktop frontend (mtcad_gui.exe) using ImGui + Vulkan + SDL3 + STB
Keeping the kernel in C behind a stable C API makes it reusable for:
- desktop GUI apps
- web backends (native service process)
- Server seperation
- language bindings later (Python, Rust, etc.)
MTCAD/
CMakeLists.txt
gui/
CMakeLists.txt
src/main.cpp
kernel/
CMakeLists.txt
include/mtcad/kernel.h
src/kernel.c
third_party/
SDL/
imgui/
libuv/
stb/
- Clone repository:
git clone --recursive https://github.com/Engineer162/MTCAD.git- Install vulkan:
https://vulkan.lunarg.com/sdk/home- Configure:
cmake -S . -B build- Build:
cmake --build build --config ReleaseUse Command Palette and run one of:
Tasks: Run Build Taskto run the default task (cmake: build all)Tasks: Run Taskand pickcmake: build kernelorcmake: build gui
The tasks are defined in .vscode/tasks.json and will configure CMake automatically before building.
- By default, the GUI links against the kernel import library. At runtime,
mtcad_kernel.dllmust be next tomtcad_gui.exe(or onPATH).