What you need
A Linux workstation (Ubuntu or similar), a C++20 toolchain, CMake 3.22+, Ninja, Open Cascade (OCCT) development packages, and Godot 4.7-stable.
1. Get the source
git clone https://github.com/solidexpress/solidexpress.git
cd solidexpress
2. Install system packages
On Ubuntu / Debian:
sudo apt-get install -y ninja-build zip \
libocct-foundation-dev libocct-modeling-data-dev \
libocct-modeling-algorithms-dev libocct-data-exchange-dev \
libocct-ocaf-dev libocct-visualization-dev \
libeigen3-dev libboost-dev
You also need a C++20 compiler (e.g. GCC or Clang) and CMake 3.22 or newer — typically already available via build-essential and cmake.
3. Install Godot 4.7
- Download the Godot 4.7-stable Linux x86_64 binary from the Godot builds releases.
- Place the executable at
tools/godot/godotinside the repo (create the folder if needed). - Make it executable:
mkdir -p tools/godot
# move/rename the downloaded binary to tools/godot/godot
chmod +x tools/godot/godot
That path is gitignored — each machine keeps its own editor binary.
4. Build and launch
make build # configure with Ninja and compile the modeling core
make run # import project assets, then open the app
make run prepares the Godot project cache once, then starts the SolidExpress desktop UI.
Useful commands
make test— run kernel and headless UI test suitesmake release-linux— produce a Linux desktop export underdist/releases/(when you want a shareable folder instead of a source tree)
After it opens
You are in the modeling viewport. Typical first moves:
- Drop or sketch a profile, dimension it, and extrude a solid
- Orbit / pan / zoom with mouse, trackpad, or touch
- Import STEP or STL from the File menu, or drag a file onto the window
- Export STEP, STL, SVG drawings, or AI context when you need to hand work off
Verified how-tos live in the repo under docs/howto/ — place a box, stack parts, extrude profiles, cut holes, and more.
Stuck?
Open an issue on the project tracker with your OS, compiler, and the failing command output. The source and build scripts are the same ones we use day to day — if something breaks for you, we want to know.