Inspiration

Learning low-level programming languages like assembly is often intimidating and abstract, with a steep learning curve that students typically face later in their college years. But we believe that understanding assembly builds stronger, more powerful coders- and that it shouldn't be reserved for the few who make it that far.

We set out to democratize the learning experience by creating an interactive and engaging way to explore assembly through something tangible: controlling the movement of a RC car.

What it does

Our system parses a custom-designed subset of assembly instructions- tailored for educational clarity- and compiles it into Arduino-compatible C++ code. This translated code is then uploaded to the microcontroller, enabling precise, real-time control of the RC car's movements such as forward motion, turning, and stopping.

This pipeline bridges abstract low-level logic with tangible, physical feedback, reinforcing the connection between code and hardware.

How we built it

Our team comes from diverse disciplines, which allowed us to blend expertise from various areas to bring this project to life. The compiler logic and translation layer were built using Rust, providing performance and reliability. On the hardware side, we integrated the output with an Arduino microcontroller, which we modified to control the RC car. Finally, the custom IDE interface was developed with Next.js, creating an intuitive and interactive user experience.

Challenges we ran into

Since we are using a custom syntax of assembly, we had to create our own compiler for this language that then compiles to C++. We then also had to create a backend API that can run this custom compiler library and return C++ code to the IDE frontend.

Accomplishments that we're proud of

We're extremely proud of the breadth of the components we completed. We built a compiler, a backend server, a frontend UI, a simulation software, and integrated everything with a hardware component. We're also proud of our resourcefulness. We ran into a lot of challenges, especially physical constraints, but we always found a way to make everything come together into a complete project!

Built With

Share this project:

Updates