Skip to content
PreciSim
source-guide

Project structure

You bought the source. Here is where to start reading.

This chapter is for source customers. The first five minutes with a repository decide your opinion of it, so "where to start" comes first rather than leaving you to dig.

Solution layout

PreciSim.sln
├── 01.PreciSim.Core           Base types: frames, transforms, units, result types
├── 02.PreciSim.Devices        Device interfaces + real hardware drivers
├── 03.PreciSim.Engine         Virtual device engine          ← ❌ not part of the source delivery
├── 04.PreciSim.Vision         Image processing: circle centres, checkerboards, edges
├── 05.PreciSim.Calibration    The six calibration chains
├── 06.PreciSim.Workflow       Station + DAG workflow
├── 07.PreciSim.App            WPF HMI (MVVM)
├── 08.PreciSim.Interop        vmc.dll and the Modbus server
└── tests/                     Unit tests and calibration regression tests

The engine (03) is closed source. The source package ships it as a compiled assembly plus complete model documentation. Everything else is source. Which package you bought decides whether you get 04+05, or 07, or all of it — see the source licence.

Three files to read on day one

File Why
01.PreciSim.Core/Geometry/Transform2d.cs The foundation of every coordinate transform; teaches the naming conventions
05.PreciSim.Calibration/Procedures/PixelSizeProcedure.cs A complete calibration chain; the other five follow its shape
07.PreciSim.App/Views/CalibrationWizardView.xaml How the UI binds to a chain, including progress, cancel and single-step re-runs

After those three you can add a seventh chain yourself.

Dependency direction

App → Workflow → Calibration → Vision → Devices → Core
                      ↘ Engine (interfaces only; the implementation is a closed assembly)

Dependencies only point downward. Any reverse reference is caught by the architecture test in CI (tests/ArchitectureTests.cs). That rule is the entire reason this code is reusable.

It builds on a clean clone

git clone https://github.com/precisim/precisim-hmi-source.git
cd precisim-hmi-source
dotnet restore
dotnet build -c Release
dotnet test

No dependency on paths or private packages on the author's machine. CI runs clone → restore → build → test on every release, so a fresh clone compiles. If it does not, that is our bug — open an issue.

Keeping up with updates

git pull origin main
git log --oneline v0.1.0..

Every release is tagged and has release notes. Breaking changes only happen on major versions and are called out separately in the changelog.

Next: adding a page.

Last updated: Sep 21, 2026
Was this page helpful?