On the occasion that I am turning 28, I look back at the chapter of my life when I was a player and modder of games by Synetic: The Funfactory, a small German studio that, without meaning to, taught me to be a designer of cars, a scientist, and, somehow, a resident of Germany.
(Cover screenshot: a modded “Excellence” / [unlicensed Aston Martin Vanquish with a Jaguar face] in front of the alpine observatory in Crash Time 5: Undercover. Taken in 2016)
I’ve never really had photo albums dedicated to one car, seen one time only. Well, even my 2018 Visit to Petersen Los Angeles didn’t earn a blog post. That said, tonight thanks to Auckland University FSAE team and their sponsors, I was fortunate to have spent a lot of time near a McLaren Elva, with pretty much all my camera lenses handy.
The $1.7 Million USD base model price tag probably isn’t (solely) why I am so excited to see it, I guess.
Like how the people in the Star Wars universe take for granted, I want to bring hologram video calling into reality (albeit mono-directionally for the time being), using the current video conferencing infrastructure, and keeping the finished product as open-source as possible.
Executively speaking, this project makes use of a typical pyramidal hologram projector and real-time video stream synthesis using OpenCV and Python. It will be broken down into three (four) distinct tasks.
A. Design and manufacturing of projectors for various devices.
B0. Deployment of a custom iOS app that on each device
collects video feed,
syncs time,
performs necessary image corrections like perspective change, and
compresses and transmits video streams over wired connections.
B1. Evaluation of lighting and camera mounting positions.
C. Real-time video synthesis fed into virtual camera software.
(Code and design blueprints will be available on GitHub after the design phase ends)
Progress
A.
Trivial.
B 0.
Not yet implemented.
B 1.
Not yet implemented. I have 4 idevices that can at least capture at 1080p.
C.
6 Feb 2022
I used OpenCV to stitch four feeds together and broadcast the result into Zoom as a virtual camera. Before further optimization efforts, I currently make use of a transparent PNG of a right-isosceles triangle.
Using this picture, pixels in the video feeds whose coordinates match the mask is transparent are discarded, and the resulting four triangles are combined using Numpy magic.
The inner shadow effects may be able to be multiplied back into the video stream and provide a vignette effect, but that is not implemented in the current pipeline.
In all, the system can output 1080 × 1080 images like this at slightly over 50 frames per second.
And here’s the synthesized feed on a receiving Internet terminal, static but refreshing at 30 FPS.
This passion project, along with my (remote) lab duties during daytime, has been my source of joy during quarantine.
I intend to use this page in a manner similar to my previous build logs of various crafts projects, and to upload pictures regularly as I make progress.
Basic usage of Simulink (R) for aerodynamic simulations… This is more “if” knowledge than “how”.
A deeper appreciation of the complexity of a real car. To be fair all I’ve been able to achieve is, physically, a metal box spring-loaded onto 4 bouncy wheels, and all the sub-systems are make-believe.