Inspiration

Learning how to drive is stressful and the driving test is often the most challenging part of the process. Many students don’t fail because they lack driving skills, but because the exam environment is high-pressure, unfamiliar, and leaves little room for error. Access to meaningful professional feedback is also limited: instructors are expensive, availability is restricted, and opportunities for exam-level practice are limited.

We wanted to create a way for learners to practice realistically, privately, and conveniently while still being held to real driving test expectations. Our goal was to closely mimic the structure, rules, and tone of an actual probationary driving exam, allowing users to build confidence through repetition and familiarity before test day.

What it does

RearView is an iOS app that simulates a Quebec probationary (Class 5) driving exam experience.

The app generates an exam-level driving route starting from the user’s real-world location and guides them through it like a virtual driving examiner, not a coach.

During a practice session, the app:

  • Displays a realistic test route on a map with turns, stops, and checkpoints
  • Provides neutral, examiner-style voice instructions (no coaching or hints)
  • Tracks driving behavior in real time, including:
    • Speed compliance
    • Full stops vs rolling stops
    • Route adherence
    • Lane change prompts
    • Shoulder and blind-spot checks using TrueDepth head movement
  • Minimizes UI distractions while driving

At the end of the session, users receive:

  • A pass / fail result
  • A detailed list of mistakes
  • A heatmap overlay showing where errors occurred on the route

The experience mirrors real driving test expectations while allowing users to practice anytime, anywhere.

How we built it

RearView was built as a full-stack iOS application with a Swift backend, designed to simulate real driving test conditions while remaining scalable.

Frontend (iOS App)

The iOS app was built using:

  • Swift and SwiftUI
  • Xcode targeting iOS 17+
  • MapKit and CoreLocation for route display, GPS tracking, and speed monitoring
  • ARKit (TrueDepth) to detect head movement for shoulder and blind-spot checks
  • AVFoundation for examiner-style voice instructions

The app requests location permissions, generates an exam-level route based on the user’s current location, and enters a focused driving mode with minimal UI while continuously tracking driving behavior.

Backend (Route Generation & Evaluation)

The backend is written in Swift using Vapor and runs locally during development.

  • Responsible for generating exam-like routes near the user’s location
  • Returns routes as encoded polylines with structured checkpoints such as stops, turns, and lane changes

AI & Voice

  • Gemini API is used to support rule-based reasoning and driving evaluation logic, with flexibility for more advanced examiner behavior in the future.
  • ElevenLabs is used to generate natural, neutral, examiner-style voice instructions

This combination allows the app to provide realistic guidance and post-drive feedback without coaching the user.

Challenges we ran into

One of our main challenges was scoping the project appropriately for a hackathon while still building something realistic. Driving tests vary by region, so we focused on a single city and its provincial rules while designing the system to remain flexible for future expansion.

Reliably detecting shoulder and blind-spot checks was another challenge. Using TrueDepth head movement to infer these actions is non-trivial, as head orientation can vary based on device placement, driver posture, and lighting conditions, requiring careful calibration to avoid false positives or negatives.

We also had to find the right balance in user interface design. The app needed to simulate a real test environment with minimal guidance, while avoiding unnecessary stress or distraction during a live drive.

Accomplishments that we're proud of

We’re proud to have tackled a real-world problem that affects millions of learners. Driving tests are high-stakes, stressful, and difficult to practice realistically, and RearView provides a structured way for users to prepare and gain confidence before test day using real roads and real driving conditions.

From a technical perspective, we’re proud of integrating multiple iOS technologies into a cohesive system. The app combines MapKit and CoreLocation for route generation and speed tracking, ARKit (TrueDepth) for detecting head movement during shoulder and blind-spot checks, and AVFoundation for examiner-style voice instructions, all coordinated within a minimal, safety-conscious user interface.

Finally, we’re proud of designing RearView with scalability in mind from the start. By separating route generation, evaluation logic, and region-specific rules, the system is built to expand beyond Montreal and adapt to different driving test standards in the future.

What we learned

Building a realistic driving test simulator taught us that passing a driving exam is about much more than basic vehicle control. The structure, pressure, and formality of the test environment play a major role in performance.

We learned that small design choices, such as the tone of voice, lack of coaching, and minimal on-screen interaction, have a significant impact on how realistic the experience feels. Mimicking examiner behavior is just as important as tracking driving metrics.

From a technical perspective, we gained experience working with real-world sensor data, combining GPS, mapping, and device sensors to infer driving behavior. We also learned the importance of clear separation between frontend and backend systems to allow evaluation logic and route generation to scale independently.

Finally, we learned that driving tests vary widely by region. By concentrating on one city and province, we were able to deliver a realistic initial release without limiting the system’s ability to scale to other regions in the future.

What’s next for RearView

Our next focus is scalability and realism.

For this project, we intentionally focused on Montreal to ensure the driving experience closely matches real Quebec probationary test expectations. Since driving tests are regulated differently across provinces and countries, expanding responsibly requires understanding regional rules, scoring criteria, and examiner behavior.

Next steps include:

  • Researching driving test requirements across other Canadian provinces
  • Studying how licensing exams are structured internationally, where regulations may be national or regional
  • Adapting examiner logic and evaluation rules to reflect region-specific expectations
  • Incorporating pre-planned routes from real driving test centers, where candidates are typically assigned one of a small set of standard routes

Long-term, RearView aims to provide accessible, realistic driving test practice that reduces uncertainty while maintaining professional-level standards, allowing learners to prepare with confidence wherever they are.

Built With

Share this project:

Updates