Industrial software
Since 2021 we have rebuilt the software Høglund's engineers use to design marine automation. A custom language for describing components, an engine that renders the system in real time, and a visual tool for building the interfaces, running on both Windows and the web.
- Client
- Høglund AS
- Duration
- Ongoing (since 2021)
Services
Domains
Tooling
- DSL
- Expression language
- Graphics programming
- Real-time rendering
- Native Windows
- Web
Result
- ( r1 ) One live view of the entire automation system, identical onboard and on shore, running natively on Windows and in the browser.
- ( r2 ) Høglund's engineers, not just its developers, can build and change interfaces themselves, with live preview and fast iteration.
- ( r3 ) OSDesigner rebuilt in production, so engineers assemble whole systems visually while the team keeps delivering.
- ( r4 ) The rebuilt suite is now something Høglund shows off itself, presented together with us at Nor-Shipping.
Høglund has built marine automation since 1993, and their systems now run on hundreds of vessels around the world. The software their engineers used to design those systems had aged with dignity, but it had aged. It needed modernising, not replacing. Since 2021 we have worked as Høglund's technical partner, rebuilding the toolchain from the inside while their team kept delivering.
Høglund knows the vessels, the regulations, and the bottlenecks better than anyone. Our job was never to decide what the system should do. It was to give it a new technical foundation. We improved what worked, modernised what had aged, and looked for what newer technology could add, without losing the precision this industry runs on.
Marine automation touches everything onboard, from the engines to navigation and safety, so the software has to be right the first time. It is also built by several parties at once: the shipyards assembling the vessels, the crews operating them, and the engineers who design, test, and install the systems. The tools we built had to serve all of them without slowing any of them down.
Three pieces of software, built to work as one. A language for describing components and the logic that drives them, an engine that renders live system status, and a visual tool for assembling it all. We rebuilt each one in production, without ever taking the toolchain offline.
Onboard, the crew has to read the whole automation system at a glance and trust what they are looking at. We built a high-performance application that renders the live system as a single status picture, drawn from one underlying model. That same model powers a native Windows build, where speed and direct hardware access matter, and a web build for anyone following the vessel from shore. Whichever one you open, you are looking at the same source of truth.
Drawing a system once is straightforward. The hard part is who gets to build the next one, and how fast. We designed a domain-specific language for describing components, paired with an expression language for the logic that binds them. An engineer writes the markup and sees it render live, editing and previewing in the same moment. The people who know the domain, not just software developers, build these pieces themselves and see the result instantly.
<Component>
<Property Name="Value" Type="string[]" />
<Property Name="AlarmColor" Type="color" Value="#A0D4F1" />
<Property Name="DataSeries" Type="double[]" />
<Layer>
<Text Value="Available power" HorizontalAlignment="Center" />
<Bar Id="Bar1" Width="24" Value="75" Height="100"
BarColor="{{self.AlarmColor}}" />
</Layer>
<Layer>
<Text Value="Total power" HorizontalAlignment="Center" />
<Bar Id="Bar2" Width="24" Value="75" Height="100"
BarColor="{{self.AlarmColor}}" />
</Layer>
</Component> OSDesigner is where Høglund's engineers assemble the operator interfaces and automation systems by hand. We rebuilt it completely. Engineers pull components from the language, arrange them on a canvas, and keep sight of the whole system as it grows. We did the rebuild in production, renewing the workspace beneath the team while they kept delivering projects on it. The language, the rendering engine, and OSDesigner ended up as three layers of one toolchain, not three tools that happen to sit side by side.
A toolchain Høglund now builds on, and shows off.
-
Elias Hogstvedt - Senior Developer - VVegard - Senior Developer
- SSebastian - Senior Developer
-
Victor Gallipoli - Senior Developer