What exactly is Pictorus?

Pictorus is a visual programming platform for developing software to run on hardware. It’s entirely cloud native. You connect Single Board Computers (like a Raspberry Pi or Jetson Nano) to our cloud, and then use our in-browser visual editor to diagram the logic you’d like your hardware to run. We then automatically compile your application for you and deploy it to your hardware. It's a "low code" editor for hardware projects.

Pictorus is meant for engineers trying to develop new devices, robots, you name it. Anything with sensors or actuators. We’re striving to make the visual coding paradigm so easy to use that advanced software expertise is not required to build powerful electronics. And we strive to create a compelling rapid iteration experience, where compilation and deployment to your devices takes seconds. It should be fun and easy to do software for hardware, finally.

Who is the target audience?

Our ideal users are engineers and hardware hobbyists who are comfortable with electronics, and are looking for an easy, powerful way to develop and deploy software to their devices. These are typically mechanical, electrical, aerospace, or software engineers. Often they come with Matlab/Simulink backgrounds. But anyone who is comfortable with soldering, following wiring diagrams and a spec sheet, understands basic programming concepts, and can do a few simple linux terminal commands should be able to jump right in!

Why is it called Pictorus?

We’re calling it “Pictorus” after a constellation in the southern sky - Latin for “the painter” and fitting for a product that lets you draw algorithms like flow charts, while code literally writes itself in the background.

Will Pictorus continue to be free?

We absolutely will continue to provide a compelling free tier of our product as part of our general release. We believe strongly that one of the big problems with our sector is the inaccessibility of this kind of tooling for small teams and individuals. Paying customers will be those who have enterprise-level needs, or require more data/connectivity/device management than is feasible to support for free. But we will always provide our core product for free.

Will Pictorus be Open Source?

Eventually, mostly. We don’t want the core components to be mysterious black boxes. In fact, a big part of our long term vision is to allow modifying block functionality, tailored to a user's specific needs. By our general release (after beta), the goal is to have all block source code visible to the public and open for pull requests. The secret sauce we will keep proprietary (for now) is our code generator, which analyzes the diagram you draw in the browser and converts it into an application composed of those open source blocks. We believe strongly in the open source ethos, so as the product evolves, we’ll continue to explore ways in which a sustainable business (which covers the cost of free tier users) can thrive if we sought to open source more of the platform.

What do I need to get started?

Technically you don’t need anything except a web browser. You can build simulations in the cloud to experiment with signal processing, controls theory, or really any linear algebra or programming logic.

But Pictorus really shines when you sync a remote device. There’s a good chance any linux-based computer (Raspberry Pi, Jetson, Odroid, Beaglebone) with a relatively recent OS will be able to run Pictorus apps. This includes a Linux laptop. But for now we’re only officially supporting the RaspberryPi series and the Jetson series computers, since device protocols are often hardware specific, and will require more time to fully support.

And of course, you’ll probably want some sensors and actuators to connect to your device and control from your browser!

Can I deploy my app to an embedded device?

Not yet! Embedded development (software run on bare metal without an operating system) is a medium-term goal of ours, but for now we only work on computers sporting Linux operating systems and an internet connection. For low power projects, we find the Pi Zero to be pretty close to embedded-level wattage.

Why is the code generator in Rust?

For a long time, most code generators for hardware applications have been C or C++. But one of our strategic bets at Pictorus is in Rust, a newer systems programming language with a lot of advantages over C/C++. Rust is gaining a lot of momentum within the Linux, embedded, and mission-critical software communities, and is poised to replace C/C++ as the language of choice for hardware control in the next decade. We've written a white paper on this topic you can read for more details.

The TLDR; is our code generator can guarantee software safety in a way that is nearly impossible with traditional C/C++ code generators. Additionally, advances in incremental compilation in Rust allow us to rapidly rebuild and redeploy your apps within seconds. Lastly, the open source crate ecosystem for Rust is vast (and growing), making it easy to extend our block library in the future to include a lot of very powerful functionality for our users.

How many devices can I register?

For Beta, we are limiting the number of devices you can concurrently pair with to 5. In the future we’ll likely charge for teams needing to deploy to more devices, but if you have a specific use case right now that could use an increased device limit, please reach out and we’d be happy to work with you.

What protocols are supported?

For hardware protocols, we currently support GPIO, UART, I2C, and PWM protocols. We know SPI is missing, as well as a few other common protocols. SPI will be supported prior to General Release, and we'll continue to add more protocols along the way.

For software protocols, we support UDP. We plan to support TCP and gRPC prior to our General Release.

What devices are supported?

We currently support most modern RaspberryPi SBCs (Pi3, Pi4, PiZero), and are in the process of supporting Jetson series SBCs as well. Other common platforms, such as Odroids, Beaglebones, etc, haven't been tested and certain hardware protocols in particular may not work. Software protocols should all work. You can even deploy to your Linux laptop, if you're just running a pure software app or simulation.