Three Months Of Side Projects
Small side projects I've built over the past few months (January through April):
Project #1 NewTek NDI Output From Unity3D
Create a multi-threaded hybrid (Native C & C++ and C# .NET) low-latency, zero-impact, cross-platform (desktop, Linux, iOS and Android) Unity3D plugin that captures the rendered 3D camera in Unity3D and transmits the image and the audio output as an uncompressed NewTek NDI video source to the local area network suitable for video streaming via Wirecast, vMix or OpenBroadcast Studio (OBS) or integration into an NDI hardware device such as the Atomos Ninja or NewTek Tricaster. This opens up a world of possibilities for live streaming games created in Unity3D that does not require separate hardware based capture cards or external screen capture software such as Fraps. Also useful for quality assurance to record the output of a screen for debugging purposes. Work in editor, desktop (Windows, macOS, Linux) and mobile (iOS and Android).
Project #2 Unity3D h264 Video Stream Decoder Plugin
Ingests a H264 encoded stream, (Native C with a C# wrapper) e.g. h264 camera, h264 video file or twitch.tv stream, and display the video on a texture in Unity3D. Can decode the h264 stream either via CPU or GPU using NVidia decoder.
Project #3 Unity3D H264 Video Encoder Plugin
Captures the output from a Unity3D camera and writes the video and audio to a file on the local machine or a network server. Encodes on CPU or GPU. Multi-threaded, zero-impact, zero-latency. Works in editor, desktop (Linux, macOS, Windows) and mobile (iOS, Android). Useful for capturing video for marketing purposes or quality assurance. Native C++ with a C# wrapper.
Project #4 Unity3D Twitch.tv Streaming
Twitch.tv streaming directly from within Unity3D. CPU or GPU encoder. Capture the rendered output from a Unity3D camera, overlay the webcam or front-facing camera ala PiP (picture-in-picture), and transmit it directly to twitch.tv, YouTube gaming or Facebook video. Works in editor, desktop and mobile, so you can stream your Unity3D games straight from your phone directly to twitch.tv. (Native C++ with a C# wrapper)
Project #5 macOS Tiered Storage
Tiered storage on macOS that can provide RAM disk like speeds when compiling or building your project even if you don't have enough RAM to store your entire project in a RAM disk. Built using C and macOS to produce a kernel driver. Prior proof of concept created using existing tools. (Native C kernel extension and device driver)
Project #6 Bcache-like caching layer for VMWare ESXi
Reduce latency and read/write delay even if using SSD as your storage. Written in C and inserting itself as a storage tier into VMWare ESXi to handle read & write storage requests this caching system accelerates all accesses to the underlying backing store. Can work in both write-back and write-through caching modes. (Native C kernel device driver)
Project #7 Unity3D Augmented Reality Features
Real-time SLAM and mini-SLAM (Simultaneous Localization and Mapping), SURF arrays and VIO (visual inertial odometry) for augmented reality applications in a GPS-denied environment. (C++, Rust, OpenCV, C#)
Project #8 Unity3D Replay Dashcam
Dashcam application for Unity3D games that continuously captures the last minute of gameplay in a continuous loop (circular buffer) and uploads it to a storage server. If the Unity3D game crashes during QA, or you need to visually demonstrate a glitch in the game, you can show it via the video easily. Also useful to capture “cinematic moments” in live game play. Works in editor, on desktop and also mobile. (Native C++ with a C# wrapper and a custom NVIDIA GPU encoder)
Project #9 VMWare ESXi General Purpose RAM Disk
Working at the virtual machine host level and inserting a RAM disk driver entire virtual machines whose existence is short-lived or when a VM is brought out of hibernation can be hosted directly in RAM, and then suspended back to SSD storage when no longer required. With the entire VM hosted in a RAM disk it reduces wear on the physical media (SSD), reduces read & write latency, and significantly reduces the amount of time that a CI/CD build system is waiting on a build agent. (Native C kernel device driver)
Machine Learning Engineer
4 年That's a very impressive list of projects. Congrats! I hope to get this creative with Unity as I learn more!
Founder at myDox
4 年Very cool Justin. Nice work!
Principal Gameplay Engineer @ Zynga | Former Telltale, US Navy, Intel Corp
4 年Sounds super fun!
All-in on PLG and AI-assisted GTM.
4 年holy freak you've been busy. when do you sleep?
?????????????????????????????? ???? Father, Artist, Writer. Video Game Industry, D.O.D., & U.S. Marine Veteran. Known to be a Sheep Dog & an occasional swimmer with sharks.
4 年That is very impressive!