Inspiration
Being a newcomer in Canada can be overwhelming. From two national languages to a rich legacy of arts, history and cultural references, there's a lot to learn.
Beaver is a friendly multilingual robot pet that can act as your guide to the context behind the things you see every day, transitioning fluidly between a speaker's native language, French & English.
What it does
Beaver brings public information to newcomers to Canada, in the place and the language they need it. Newcomers meet Canada's institutions everywhere: Parliament and the Peace Tower, bilingual signs, a municipal service building, a letter from a government office, a filing deadline. Beaver helps them understand what those institutions are, what they ask of them, and why it matters, before they're fluent in English or French.
A newcomer talks to Beaver out loud, in their own language. It understands English, French, Spanish, Arabic, Chinese, Punjabi, Tagalog and Ukrainian, can detect which one is being spoken, and answers aloud in French, English, and the person's own language, one sentence at a time. Nobody has to read, type, or already know the right term to ask. Beaver works in three modes:
1. Cultural fluency. Ask about anything you see: a building, a coin, a custom, a word you just heard. Beaver looks through its camera and explains it. Every exchange becomes a notebook on the desktop app, so civic knowledge builds up over time: the question and its answer, vocabulary cards that switch between English and French, the key concepts with a note on why each matters to someone new to Canada, a timeline of the dates involved, and a small 3D piece for the topic, like the Peace Tower or a hockey stick.
2. Duties and deadlines. Beaver shows the federal, provincial, and municipal dates that apply to you, such as tax filing, benefits, and elections, taken from official government pages. If you share your approximate location, the laptop works out your province and municipality on its own, without sending your coordinates anywhere, so you see the governments whose rules actually apply to you.
3. Documents. Photograph a letter or form from a government office, and Beaver reads and summarizes it on your own laptop, in your language, so the document never leaves your computer.
Trust matters when someone is new to a country, so privacy is built into every mode. Before anything leaves the rover, a local guard proxy turns the person's voice into text with Whisper on the Raspberry Pi and replaces personal details (phone numbers, addresses, health card numbers, social insurance numbers and more) with plain phrases. The AI only ever sees the cleaned question, never the recording.
How we built it
The core logic is in Python + Raspberry Pi with Javascript for website + interfaces.
- Hardware: a Raspberry Pi 5 on a SunFounder PiCar-X with a Robot HAT, an OV5647 camera and a speaker. The head is designed in Solidworks and 3D printed.
- Asking a question: the rover had no microphone, so the visitor asks through a web page on their phone. The page reaches the Pi through a Cloudflare tunnel, because the campus Wi-Fi blocks devices from talking to each other.
- On the rover: Whisper (base model, via faster-whisper) transcribes in about 2 seconds. Our guard proxy then cleans the text, Gemini writes the answer, and ElevenLabs speaks it. From the end of a question to the start of speech takes about 5 to 6 seconds.
- On the laptop: a desktop app pulls the rover's turns over SSH every minute and files them into notebooks. It translates with Gemini or with open-source Argos models, draws its scenes and notebook pieces in three.js, and maps locations with Statistics Canada's boundary files.
Challenges we ran into
We put a lot of effort into modelling a beautiful, functional robot friend in just 2 days from scratch. We faced a number of challenges in wiring the sensors up properly, tolerancing (!!!) and 3D printing. We realized some components weren't the right specs, or that we were missing parts, a number of times, and had to find creative workarounds.
We also didn't realize how much compute it would take for us to run Whisper locally for the privacy gate. Our computer overheated at some points, nearly melting our enclosure. We really need better thermal management and a fan or two to cool Beaver down...
A few more we hit along the way:
- Bluetooth headsets: AirPods paired with the Pi, but its built-in Bluetooth never delivered the microphone audio. We switched to the visitor's phone as the mic.
- Unexplained shutdowns: the Pi kept cutting out under load. It turned out to be two power supplies plugged in at once, and one crash left half-written library files that broke Whisper until we reinstalled.
- Language detection: Whisper's smallest model confidently heard a Chinese question as English. We moved to a larger model that asks the visitor to choose a language when it isn't sure.
Accomplishments that we're proud of
We believe we've made something that could be a very useful guide to Canada, one that could really become an in-person tool.
We're also proud that it's private by design: your voice and personal details stay on the rover, and the AI gets only a cleaned-up question. It works in eight languages, and every conversation turns into a notebook you can come back to and learn from.
What we learned
We learned a lot about time management, task-splitting effectively, designing in Solidworks, working with sensors + Raspberry Pi!
What's next for Beaver
We'd love to work more with building this out and developing a more elegant 3D prototype, etc.
Next on the list:
- the federal, provincial and municipal deadlines that apply to you;
- photos of letters and forms, summarized privately on your own laptop;
- answers that cite official sources;
- the same privacy guard for questions asked on the laptop;
- an animated face on the rover's screen;
- better cooling for running Whisper on board.
Built With
- 3d-printing
- cloudflare
- cloudflare-tunnel
- cloudflare-workers
- css
- elevenlabs
- faster-whisper
- google-gemini
- gpt-image-2
- html
- javascript
- onnx-runtime
- ov5647-camera
- pyshp
- python
- python-dotenv
- raspberry-pi
- reveal.js
- segno
- ssd1306-oled
- statistics-canada-boundary-files
- tailscale
- three.js
- webgl
- whisper

Log in or sign up for Devpost to join the conversation.