Root documentation: - README.md: add Datums description, update addon load order and SDK references, fix project structure tree, update issue reporting guidance - CONTRIBUTING.md: update submodule table (remove ztools, add gears/datums/solver), fix QSS guidance (single canonical source, not three copies) - docs/ARCHITECTURE.md: update bootstrap flow (5 addons, split deferred timers between Create core and Silo addon), update load order and source layout - docs/COMPONENTS.md: add Datums and Solver sections, update Gears description, fix Silo origin registration reference - docs/KNOWN_ISSUES.md: create missing file referenced by CLAUDE.md and CONTRIBUTING.md - docs/INTEGRATION_PLAN.md: update layer 5 diagram, fix load order references, update Phase 6 install rules, fix Layer 2/3/5 descriptions - docs/OVERVIEW.md: add datums submodule entry - docs/UPSTREAM.md: update Phase 1 directory table and Phase 4 submodule list mdBook documentation (docs/src/): - SUMMARY.md: replace dead architecture/ links with existing reference pages, remove deleted silo-server files, add new silo-server pages - introduction.md: rewrite — replace ztools with current addons (Silo, Gears, Datums, KCSDK), update version to v0.1.5/FreeCAD 1.2.0 - guide/getting-started.md: update first-run addon list - guide/installation.md: update verification console output - guide/workbenches.md: rewrite — replace ztools with Gears, Datums, Solver - guide/building.md: update submodule table, fix error message guidance - development/contributing.md: fix scope example and issue reporting - development/repo-structure.md: rewrite — add SDK, datums, gears, solver, reference/ folder; update submodule and key files tables - development/writing-an-addon.md: fix priority range table - reference/create-module-bootstrap.md: rewrite — reflect addon_loader system, split deferred timers between Create core and Silo addon - reference/datum-creator.md: update from ZTools to datums addon paths and naming - reference/glossary.md: add KCSDK entry, update FreeCAD version, remove ztools entry, update repository URLs table
12 KiB
Kindred Create
An engineering-focused parametric 3D CAD platform built on FreeCAD 1.0+
Kindred Create 0.1.5 | FreeCAD 1.2.0 base
Website | Downloads | Issue Tracker | Documentation
Kindred Create is in active development. Features and interfaces may change.
What is Kindred Create?
Kindred Create is a fork of FreeCAD that adds integrated tooling for professional engineering workflows. It ships a context-aware UI system, addon workbenches, a purpose-built dark theme, and a pluggable file origin layer on top of FreeCAD's parametric modeling core.
Editing context system -- The UI adapts to what you are editing. An EditingContextResolver tracks the active document, view, and in-edit object, then shows or hides toolbars automatically. Built-in contexts cover sketcher editing, assembly editing, PartDesign features/bodies, spreadsheets, and idle states. Addons register their own contexts through a Python API. A color-coded breadcrumb bar in the 3D viewport shows the current editing path.
Gears -- A parametric gear generation workbench for creating involute spur gears, helical gears, and other gear profiles directly within FreeCAD assemblies.
Datums -- A unified datum creator that replaces the three stock PartDesign datum commands (Plane, Line, Point) with a single command providing 16 smart creation modes. Auto-detects the best datum type from selected geometry, with manual mode override and dynamic parameter UI.
Silo -- A parts lifecycle management system for managing CAD files, part numbers, revisions, and bills of materials across teams. Includes a Go REST API server backed by PostgreSQL and MinIO, with FreeCAD commands for opening, saving, and syncing files directly from the application. A unified origin system integrates Silo file operations (New, Open, Save, Commit, Pull, Push) into the standard File toolbar and menu across all workbenches. Dock panels provide authentication, real-time database activity via SSE, and a custom start page that replaces the default FreeCAD landing.
Catppuccin Mocha theme -- A dark theme applied across the entire application, including the 3D viewport, sketch editor, spreadsheet view, and tree view. Uses spanning-line branch indicators instead of disclosure arrows. Includes tuned preference defaults for document handling, selection behavior, notifications, and report view settings.
Update checker -- On startup, Kindred Create checks the Gitea releases API for newer versions and logs the result. Configurable check interval and skip-version preferences.
Kindred Create is maintained by Kindred Systems LLC.
Platform support
| Platform | Packages | Status |
|---|---|---|
| Linux x86_64 | AppImage, .deb | Builds and releases in CI |
| Linux aarch64 | -- | Build configuration ready, no CI runner yet |
| macOS Intel | DMG | Build preset defined, no CI runner yet |
| macOS Apple Silicon | DMG | Build preset defined, no CI runner yet |
| Windows x64 | NSIS installer, .7z | Build preset defined, no CI runner yet |
Installing
Prebuilt packages (Linux)
Download from the releases page.
Debian/Ubuntu:
sudo apt install ./kindred-create_*.deb
AppImage:
chmod +x KindredCreate-*.AppImage
./KindredCreate-*.AppImage
Building from source
Kindred Create uses pixi for dependency management and CMake for building.
git clone --recursive ssh://git@git.kindred-systems.com:2222/kindred/create.git
cd create
pixi run configure
pixi run build
pixi run install
pixi run freecad
Debug and release variants are available (pixi run build-debug, pixi run build-release). See CMakePresets.json for platform-specific presets covering Linux, macOS, and Windows.
pixi run test runs the C++ test suite via ctest.
For general FreeCAD compilation guidance, see the FreeCAD wiki for Linux, Windows, or macOS.
Architecture
Editing context system
FreeCAD's stock UI presents a flat set of workbenches that the user switches between manually. Kindred Create replaces this with a context-driven model: as you open documents, enter edit mode on a sketch, or select a PartDesign body, the EditingContextResolver (C++, src/Gui/EditingContext.h) evaluates registered context definitions in priority order and activates the matching one. Activation sets toolbar visibility via ToolBarManager::setState(ForceAvailable) and updates the breadcrumb bar.
Built-in contexts:
| Context ID | When active |
|---|---|
sketcher.edit |
Editing a Sketch object |
assembly.edit |
Editing an Assembly |
partdesign.feature |
Editing a PartDesign feature (pad, pocket, etc.) |
partdesign.body |
A PartDesign Body is selected |
assembly.idle |
An Assembly document is open but not in edit |
spreadsheet |
A Spreadsheet view is active |
empty_document |
An empty document is open |
no_document |
No document is open |
Addons extend this through the Python API:
FreeCADGui.registerEditingContext()-- register a new context with match function, toolbars, and priorityFreeCADGui.registerEditingOverlay()-- register an overlay that conditionally adds toolbars on top of any contextFreeCADGui.injectEditingCommands()-- add commands to an existing context's toolbarsFreeCADGui.currentEditingContext()-- query the active contextFreeCADGui.refreshEditingContext()-- force a re-evaluation
Addon integration
Addons in mods/ are loaded by a manifest-driven loader (src/Mod/Create/addon_loader.py). Each addon provides a package.xml with <kindred> extensions declaring version bounds, load priority, and dependencies. The loader resolves dependencies via topological sort and loads addons in order: sdk (0) -> solver (10) -> gears (40) -> datums (45) -> silo (60).
Addons call platform APIs through the kindred-addon-sdk (mods/sdk/kindred_sdk/) and the KCSDK C++ library (src/Gui/SDK/) rather than FreeCADGui.* internals directly. The SDK provides stable wrappers for editing contexts, theme tokens, FileOrigin registration, dock panels, toolbars, and menus.
Silo registers an overlay that adds the "Silo Origin" toolbar whenever the active document contains Silo tracking properties (SiloItemId, SiloPartNumber).
Unified origin system
File operations (New, Open, Save, etc.) are abstracted behind a FileOrigin interface. The default LocalFileOrigin handles standard filesystem operations. When Silo is connected, SiloOrigin provides the same interface backed by the Silo server, adding revision control, part numbers, and remote storage. The active origin is selected automatically based on whether the current document is tracked by Silo.
Usage
Kindred Create is compatible with standard FreeCAD workflows. The FreeCAD wiki covers general usage.
Silo
Silo requires a running server instance. See mods/silo/README.md for server deployment instructions.
The FreeCAD workbench reads configuration from:
SILO_API_URL-- Server API endpoint (default:http://localhost:8080/api)SILO_PROJECTS_DIR-- Local projects directory (default:~/projects)
On first launch, Kindred Create prompts for Silo server configuration. Silo commands are available in the File menu across all workbenches:
| Command | Shortcut | Description |
|---|---|---|
| New | Ctrl+N | Create a new item with part number |
| Open | Ctrl+O | Search and open items from the database |
| Save | Ctrl+S | Save locally and upload to MinIO |
| Commit | Ctrl+Shift+S | Save with a revision comment |
| Pull | -- | Download the latest revision from the server |
| Push | -- | Upload local changes |
| BOM | -- | Edit the bill of materials |
| Info | -- | View item metadata and revision history |
| Rollback | -- | Restore a previous revision |
The authentication dock panel (right side) manages server login. The activity panel shows recent database changes in real time via server-sent events.
Project structure
create/
├── src/
│ ├── App/ # Core application (C++)
│ ├── Base/ # Base classes, type system, persistence (C++)
│ ├── Gui/ # GUI framework (C++)
│ │ ├── EditingContext.h # Editing context resolver
│ │ ├── BreadcrumbToolBar.h # Breadcrumb navigation widget
│ │ ├── Stylesheets/ # QSS theme files
│ │ └── PreferencePacks/ # Theme and preference configurations
│ ├── Mod/ # FreeCAD modules (PartDesign, Assembly, Sketcher, ...)
│ │ └── Create/ # Kindred Create module (Python loader + C++ scaffold)
│ └── 3rdParty/ # Vendored dependencies
│ ├── OndselSolver/ # Assembly constraint solver (forked)
│ └── GSL/ # Microsoft Guidelines Support Library
├── mods/ # Kindred addon modules
│ ├── sdk/ # Addon SDK — stable API contract (priority 0)
│ ├── solver/ # Solver addon (submodule, priority 10)
│ ├── gears/ # Gears workbench (submodule, priority 40)
│ ├── datums/ # Unified datum creator (submodule, priority 45)
│ └── silo/ # Silo PLM workbench (submodule, priority 60)
├── resources/ # Branding, icons, desktop integration, MIME types
├── package/ # Packaging scripts
│ ├── debian/ # .deb build script
│ └── rattler-build/ # AppImage/DMG/Windows bundling
├── docs/ # mdBook documentation site
├── .gitea/workflows/ # CI/CD (build, release, docs deployment)
├── CMakeLists.txt # Root build configuration
├── CMakePresets.json # Platform build presets (Linux, macOS, Windows)
└── pixi.toml # Pixi environment and build tasks
The mods/ addons and src/3rdParty/ dependencies are git submodules. If you cloned without --recursive, initialize them with:
git submodule update --init --recursive
Contributing
See CONTRIBUTING.md for the full contribution guide, including branch workflow, commit message conventions, code style, submodule management, and theme change procedures.
Reporting issues
Report issues at the issue tracker. When reporting:
- Note whether the issue involves Kindred Create additions (Silo, Gears, Datums, theme, editing contexts) or base FreeCAD
- Include version info from Help > About FreeCAD > Copy to clipboard
- Provide reproduction steps and attach example files (FCStd as ZIP) if applicable
For base FreeCAD issues, also check the FreeCAD issue tracker.
License
LGPL-2.1-or-later, consistent with FreeCAD.
Acknowledgments
Built on FreeCAD and its ecosystem: OpenCASCADE, Coin3D, Qt, Python. Theme colors from Catppuccin.