What's New in Pictorus - Q2 Wrap 2025

Summer salutations from the team at Pictorus! It’s been a busy quarter here and we’re excited to tell you about what we’ve been up to and our new features. We've open-sourced our core library, introduced a public API, implemented a requirements traceability workflow, added multi-channel PWM blocks, and made improvements to the performance and UI of plotting!
Open Source Core
You may have seen that we open-sourced our core libraries in May! This provides transparency into the code that goes into your Pictorus app, and also allows you to build custom implementations of Pictorus blocks. A lot of legacy engineering tools are frustratingly black box platforms, and we're flipping that paradigm on its head and embracing an open source software future.
For now, pull requests are limited to trusted developers, but anyone can file a bug or request a new feature through our public issue tracker.
Public API
One of the differentiating advantages of a cloud-based application is that you can run heavy computation or automated workloads seamlessly, in the background, on a powerful server that always work. To support this, we now have a public API! By authenticating your Pictorus account and hitting our REST API endpoints you can run simulations, deploy apps, control your hardware, and download log data. We
The Open API specification and How To Use the API docs are live but we’re constantly adding endpoints so follow us for updates!
Requirements Traceability
Pictorus now supports tracing software requirements through the model to the source code! Just upload a ReqIf file into static assets, select the requirement set in the app settings, and link components to specific requirements. The requirement will be annotated in the source code per mantra syntax.
/// Satisfies requirement: #9
#[req(#9)]
pub struct YawControllerComponent {
…
}
This is a really powerful feature for teams whose development process is fundamentally driven by proving that thorough requirements documents have been stringently met. Additionally, by instrumenting requirements traceability throughout your code, the team gets a valuable bonus feature - easy identification of code which doesn't map to a requirement. This is a great way to reduce unintended code bloat – any routine not contributing to a required element is by definition pointless code.
Finally, tagging your model with requirements is a fantastic way to document your controller – anyone on the team asking themselves "why is this routine here?" should be able to easily link back to the original requirement justifying a feature.
Multi Channel PWM
Many of the microcontrollers we support - especially the venerable STM32 Nucleo boards - have multiple channels for each PWM timer. We’ve now added support for all PWM channels, making every single PWM pin on the board available in Pictorus. When an app is set to the Linux target only a single PWM channel will appear per PWM Output block but when the target is STM32 every channel will be present. Just wire 0 value constant blocks to the unused channels!
Persistent and Component-Scoped Plots
Plots are now persistent and scoped to their component! Plot positions will be retained not just every time the plot overlay is enabled but also between page refreshes. Plots are also only shown in the component in which they were created, keeping data visualization close to the data source.
Device Telemetry Performance Improvements
We're constantly making performance improvements to Pictorus but we're particularly proud of this one! Live telemetry from your device running a controls application will now be significantly faster thanks to our adoption of WebRTC. Previously, telemetry tended to peg out around 100 Hz, and was often delayed anywhere from 1-3 seconds locally to upwards of 15-20 seconds depending on your connection. Now, telemetry rates in the 1-10 kHz range are achievable with under 1 second of delay from device to browser.
This will be noticeable both for embedded Linux devices and bare-metal embedded devices like an STM32 – Make sure to keep Device Manager up to date for the best performance.