Layer 1
Application
Purpose-built screens for one discipline — project controls, commissioning, work packaging, payables, general ledger. Own database, own permissions, own release cadence.
Platform
VissRad is deliberately not a monolith. Each application owns its own data and its own users, and they exchange signed business documents through a transport layer called Link. That is how a certified quantity in the field ends up governing what finance is allowed to pay.
11
Applications across controls, commissioning, packaging and finance
11
Link document types moving between them
3
Deployment shapes — laptop, plant network or cloud
Architecture
The desktop applications are Python and PySide6, built on a shared vissrad_core library and a shared vissrad_link client, then packaged independently. A cost engineer installs the cost engineer's tool. Nobody inherits a payables module they will never open.
Layer 1
Purpose-built screens for one discipline — project controls, commissioning, work packaging, payables, general ledger. Own database, own permissions, own release cadence.
Layer 2
An outbox and inbox on every application. Documents are written as JSON, addressed to a recipient, and acknowledged once posted. Money is carried as decimal strings so nothing rounds in transit.
Layer 3
Star-schema exports and a read-only SQLite ODBC surface, so Power BI, Excel and your existing corporate reporting read the same facts the applications wrote.
Link exchange
Real organizations already move work as documents — a claim, a certificate, an invoice, a payment advice. Link keeps that shape. Every message has an idempotency key, so a retry after a network drop cannot post the same invoice twice.
Undelivered documents retry on a fixed ladder — 5 seconds, 15 seconds, 1 minute, 5 minutes, 15 minutes, then 1 hour — for seven attempts in total. Anything still stuck lands in the hub console, where it can be inspected and replayed. A message is never silently dropped, and a silent gap between two applications never becomes a silent gap in the cost report.
Data & reporting
Project controls does not begin on a blank screen. VissRadPCS imports the CSV export of a Primavera P6 schedule — it needs activity ID, start date and finish date — matches activities to the work breakdown structure, and reports every activity it could not match rather than quietly absorbing it.
On the way out, the same project produces a monthly cost report PDF, a star-schema export for BI tooling, and a read-only SQLite ODBC connection that Power BI Desktop can refresh against directly.
P6 exchange is file-based. VissRad does not write back into your P6 database.
Deployment
The same applications run in all three shapes. Nothing in the architecture forces you into a hosted subscription to get started, and nothing stops you moving up when the joint venture arrives.
Single machine
SQLite per application, Link over a watched folder or the direct in-process transport. One estimator or one controls engineer, no servers, no IT ticket.
On premises
PostgreSQL with a FastAPI Link Hub on the site network and authenticated HTTP transport between applications. Project data never leaves your environment.
Cloud
Managed PostgreSQL with a replicated Link Hub behind TLS, for multi-office teams and joint ventures working the same capital project.
There is no single shared database behind the suite — integration is document exchange, and that is a deliberate choice. Primavera P6 is a file import, not a live two-way link. Payment files follow NACHA and ISO 20022 layouts but are not bank-certified for transmission, and the demo build stamps them accordingly. Bulk invoice import from CSV and PDF is a stub, not a shipping feature. Live 3D model translation depends on your own Autodesk platform entitlements. We would rather you read that here than discover it in month three.
Next
Six core applications carry most of a capital project. Five more cover estimating, scheduling, reporting and the AI research desk.