ARUW Prism is an integrated and collaborative platform to classify and train robot vision data. Prism supports over 40 thousand frames of video data, enabling ARUW to be one of the top Robomaster teams.
Developer & Designer
Winter 2022-Present
The old platform was opaque, making it hard to implement changes to pre-existing code. I restructured the foundational database for priority use cases and the new web application. Now, we control every aspect of our data pipelines, which wasn't possible before.
One big problem was the long loading times between navigation and general CRUD functionality. With new routing and navigation, along with dynamic APIs, I made load times virtually instantaneous and data manipulation easier. Using Prisma as our ORM made it easier and faster to query large amounts of data without SQL.
This is the first internal software platform we've built, so a big goal was establishing a foundation for robot vision-supporting tools like Prism. With the development of Prism, we've made full component libraries ready, enabling us to build more tools on the same system.
With so much information, a big problem was trying to figure out what data was necessary at a glance - it was important that we make sure that the user can see all the essential Imageset details without needing to go to the Imageset page.
The same design schemes are used throughout with information shown through hover states, mini annotations, and more.
Early on, we talked about having a tutorial of some type to teach new users how to classify vision data on the robot. Rather than have a document or list of rules, I refactored the editing interface into a tutorial system - teaching the user how to classify data.
Since everything is the same, it makes the transition process from sample images to robot data easier, and gives scored feedback when learning how to classify data.
Next.js is a React Framework for building performant and server-focused web applications. It allowed for fast development time and easy iteration.
Next.js WebsitePrisma is a Node.js ORM that we used as a layer between our old PostgreSQL database and brand-new React web application. With it's schema system, we were able to be type-safe and ensure quick data handling.
Prisma WebsiteWith SWR, we could make fetch requests at scale fast and lightweight. This is extremely important, especially with needing to go from imageset to imageset, browsing hundreds of images across hundreds of thousands of rows of data.