Home

Awesome

WWDC23-Submission

The provided playground is all about autonomous driving. It is a simulation that allows users to learn and experience the technologies behind self-driving cars. By adjusting various parameters, users can change the behavior of the vehicle and gain a deeper understanding of how autonomous cars work and what components they include. This app not only provides a vehicle simulation, but also includes abstract simulations of various components found in real-world self-driving cars, such as lane detection, object detection and tracking, and path planning. These components enable the vehicle to follow a desired path and maintain its lane while avoiding other vehicles. The main focus of this app is trajectory following, and users can experience the influence of different parameters in real-time through the feedback provided. For programmers interested in self-driving cars, this playground app is an excellent starting point, as the underlying simulation can be easily expanded and used for their autonomous car software. Custom 3D assets were created in Blender, and SceneKit was used for the visualization of 3D content. However, the kinematics of the car was custom calculated, as SceneKit's built-in vehicle physics behavior only works with dynamics, and the simulation needed to be simple and easy to customize by only working with kinematic models. For path planning, a graph of vertices was modeled in Blender and imported as a .obj file. Using a custom .obj parser and the information about vertex position and connected vertices, a graph was constructed. With this graph and the position and orientation of the vehicle, path planning could be simulated. The simulation mainly relies on simd as the primary framework to calculate new positions between rendered frames.