Ghost Pacer is an augmented reality startup based out of Seattle. It was founded by a high school friend of mine and I've worked there since the summer before my senior year. Ghost Pacer builds super-lightweight augmented reality headsets for runners. These headsets feature fully custom, in-house hardware, firmware, and software. During the past 2 years, I led design and graphics development at Ghost Pacer. Here's some of what I built there.
I built the embedded graphics engine that rendered the glasses' augmented reality visuals.
Learn MoreThe Ghost pacer glasses use an OLED microprojector to reflect an image off of a partially transparent mirror in front of the user's eye. My job was to write the code that transformed abstract representations of what the user should see into actual images on that microprojector. Specifically, this entailed transforming both 3D and 2D assets into Open GL ES 2.0 vertex buffers that could then be loaded into the GPUs draw buffer and rendered to the screen.
The Ghost Pacer logo projected in the glasses' screen
The glasses were extremely lightweight. In fact, one of the things that makes them remarkable is how small the overall package is. We achieved this form factor by building totally custom hardware from the ground up. However, this also comes with drawbacks. In particular, the glasses are forced to use an underpowered GPU to display the augmented reality scene. As a result, the graphics code had to be very low level and extremely optimized to run on our chipset. I had to take care to not waste any memory or compute power, so all the code I wrote was in C and C++. Since we were so constrained by performance, and since the chipset was so exotic and unsupported by prebuilt solutions, I had to write almost everything from scratch. This included the code for rendering 2D shapes, loading textures from image files, shading 3D models in the GPU, and an entire subsystem based around these extremely low-level processes.
The Ghost Pacer glasses side view (v1.5)
My graphics engine powered two versions of the Ghost Pacer glasses (including the most recent one). It allowed us to display complex User interfaces with backgrounds, shapes, buttons, icons, multiple 3D models, and a host of other capabilities that would've been impossible without it. It helped us secure development contracts and it helped us impress potential customers in demos. I wish I could say more, and maybe someday in the future I'll be able to...
I built significant parts of the glasses' companion mobile application.
Learn MoreAlongside my partner Izak Lewis, I helped develop the mobile companion application for the Ghost Pacer glasses. The main purpose of the app was to load running routes into the glasses and track usage statistics. I constructed the UI/UX for the app from scratch by myself. I also helped create the backend logic for the app, including data storage, API interfaces, and Bluetooth low energy connectivity.
I designed and created the (successful) Kickstarter campaign for the glasses, and built the company's websites.
Learn MoreAfter demonstrating my design abilities in the mobile app, I was asked to lead the marketing design of the company going into our Kickstarter campaign in the summer of 2020. This involved personally drawing every graphic used in social media marketing and in the campaign itself, as well as redesigning our website for the launch. The website I built can still be viewed (although it's been downscaled significantly since then) here, if you want to take a look.
Working on engineering projects provides me with a creative outlet that I really value. It's not uncommon to find me working late into the night on my latest pet creation because there are few things that fulfill me more. Listed below are some of the projects I've worked on recently.
In January of 2021, I started working for my former physics professor Robyn Millan. She runs Relativistic Electron Atmospheric Loss, a research group that's launching a satellite into space next year. She needed me to build a website, an online data portal, and a satellite tracker for her project. The website was built using React.js and featured a 3D model of the earth upon which I overlayed the current position and trajectory of the project's satellite using data from NASA's API. The website's backend was built using Node.js and Firebase.
See a preview of the site >
One of the landmark projects of CS50 (software design and implementation) at Dartmouth is the tiny search engine. Written entirely in C, it uses curl and Google's web indexing technique to crawl, index, and scrape a subsection of the internet. The indexed data is mapped to each page and the number of times it appeared on that page. It uses basic query processing to parse user searches into index queries from which webpages can be scored and returned to the user in a ranked list.
Another project I found really valuable from school was Huffman encoding. In CS10 (data structures) I built an encoding algorithm that uses binary trees to compress text files. This is one of the projects that sparked my interest in algorithms and convinced by to look deeper into the field.
I’ve worked professionally as an engineer and designer since I was 16. Over the years, I’ve developed apps, built websites, created a successful Kickstarter campaign, built a search engine, created an embedded systems graphics engine, and quite a bit more. Here are some of the skills I’ve picked up along the way.
Hi, I'm Sid. I'm a current student at Dartmouth College majoring in computer science and mathematics. In my free time, I love to hike, read, play FIFA, and I'm a huge fan of Real Madrid (the soccer team). I'm currently looking for a job starting in the summer of 2024, so please feel free to reach out if you can help me out or just want to talk!
I also like taking photos from time to time. Some of my product photography is also featured on Ghost Pacer's website. Here's a sample: (Click to enlarge)