Venice is a MicroPython runtime for VEX V5 robots. It takes Python code that you write and runs it on the V5 brain, giving it access to control devices like motors and sensors. Venice abstracts low-level features like task scheduling and memory allocation to allow your code to run seamlessly on the brain.
MicroPython is an implementation of the Python 3 programming language in C for embedded devices. The V5 brain is one such embedded device, meaning that it doesn’t have access to a full-fledged operating system like Linux or MacOS. MicroPython is designed to run on embedded devices by using significantly fewer OS-level APIs and being extremely resource-efficient.
If you’ve used Python before, you’re in luck; the vast majority of modern Python syntax Just Works in Venice’s MicroPython. The primary difference is that some standard library modules, such as requests and os, are partially or fully unimplemented because they rely on an operating system. Venice provides implementations for some of the standard library modules, such as typing, that you’ll want to use in your programs.
After all, VEX itself provides a first-party MicroPython implementation.
The biggest thing that distinguishes Venice from the VEX Python implementation is that it’s just Python. What does that mean?
typing annotations, Async Python for long-running tasks, idiomatic APIs, and more. The VEX Python SDK is unidiomatic, preventing integration with the broader Python ecosystem.venice CLI is just a regular executable package that you can run from anywhere with a terminal.Venice stands on the shoulders of giants, such as vexide, MicroPython, and Rust. In the same spirit, Venice is fully open-source. All of its major repositories are fully open-source and licensed under MPL 2.0, enabling anyone to build on our work. Feel free to submit fixes and features to our runtime and CLI!