2026-03-03 20:22:13 +00:00
2026-01-19 22:34:15 +01:00
2025-11-23 10:54:51 -03:00
2025-11-11 13:45:27 +01:00
2026-02-21 12:05:09 -06:00
2025-10-06 11:43:26 -05:00

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 priority
  • FreeCADGui.registerEditingOverlay() -- register an overlay that conditionally adds toolbars on top of any context
  • FreeCADGui.injectEditingCommands() -- add commands to an existing context's toolbars
  • FreeCADGui.currentEditingContext() -- query the active context
  • FreeCADGui.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:

  1. Note whether the issue involves Kindred Create additions (Silo, Gears, Datums, theme, editing contexts) or base FreeCAD
  2. Include version info from Help > About FreeCAD > Copy to clipboard
  3. 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.

Description
No description provided
Readme LGPL-2.1 7.9 GiB
2026-02-27 16:25:02 +00:00
Languages
C++ 51.5%
Python 45.8%
C 1.3%
CMake 0.8%
NSIS 0.2%
Other 0.2%