About Me
Hi there!
My name is Arthur Brainville, but I generally use the name “Ybalrid” on the internet.
I’m a C++ developer. I’m interested in graphics programming, virtual reality, man-machine interface, and real-time simulations.
I also have a few hobbies that I may talk about online sometimes. I collect fountain pens. I also collect, attempt to fix, and use old film camera. I develop and print film at home. I take notes of some of the interesting thing that I may be doing in the darkroom, and you can find them here!
I love Free/Open-Source software. You can find my projects and contributions to my GitHub profile
I am currently working on exciting things involving VR streaming and related technologies at a startup called LIV!
My interest and area of expertise include graphics programming (particularly OpenGL/GLSL. Currently toying with Vulkan in my free time too). C++ programming, with a specific interest in applying “modern” C++ construct to make high-level zero-cost abstractions. Low-level operating systems programming on both GNU/Linux systems and Windows. (I am familiar with both the POSIX and Win32 APIs). Human-Machine interfaces, Virtual Reality systems (I worked with both OpenVR and the Oculus VR APIs, I am following work on OpenXR, and I am familiar with the 1.0 API. I tested the beta implementation from Oculus).
I also have significant experience writing native plugins for the Unity game engine. And more broadly bridging native and C# code.
I also dabble in electronics and microcontroller projects.
Publications
- Co inventor of patent US11769299B1 : Systems and methods for capturing, transporting, and reproducing three-dimensional simulations as interactive volumetric displays (LIV Inc.)
Project you can check out
You are probably interested in seeing some concrete work I’ve done? I have done some contract work and some things that I cannot really share, but I also have a number of open-source projects hosted on GitHub. Some exits for the fun of learning and toying around with technology, and others as specific tools that fill a particular niche, and as far as I know have a few users that even contributed back some patches and fixes!
- OpenXR Runtime Manager: Program to enumerate and switch between OpenXR runtimes, on GitHub
- XREW the OpenXR Extension Wrangler
- gltf-insight a gltf file examination tool on GitHub
- Kissnet an attempt at building a “keep it simple stupid” cross-platform socket API in C++17. I wanted a really lean and mean, type-safe, using a buffer of a known length of “std::byte” to represent incoming/outgoing binary data over the network. It supports TCP and UDP over IPV4 and IPV6 and is compatible with Windows, Linux, FreeBSD, macOS and HaikuOS. On the Windows platform, it will automatically manage the initialization and cleanup of the “Windows Socket API”. https://github.com/Ybalrid/kissnet
- Ogre_glTF a plugin for the well known OGRE C++ 3D renderer that permits to load standard GLTF assets. https://github.com/Ybalrid/Ogre_glTF
- BtOgre2 a “glue” library between OGRE and ButtletPhysics. This is a fork of an older project that was compatible only with the 1.x branch of Ogre. I’ve redone all the loading of the basic vertex data and improved the debug utilities. https://github.com/Ybalrid/BtOgre2
- mma8451_pi a C library to talk to MMA8451 based accelerometer sensor boards in C from the I²C bus of a raspberry pi. https://github.com/Ybalrid/mma8451_pi
- SSVK Super Simple Virtual Keypress a tiny C++ library that permits to send global keyboard command to a Windows desktop or a Linux Xorg desktop. https://github.com/Ybalrid/SSVK
- As an ESIEA student, I’ve built the electronics and source code that the POD (Plateforme OmniDirectionel) VR omnidirectional treadmill uses, both for game engine integration and the firmware running on a raspberry pi. This can be found in multiple GitHub repository:
- https://github.com/Ybalrid/PODFirmware
- https://github.com/Ybalrid/PODApi
- the mentioned mma8451_pi and vl6180_pi are libraries that abstract away I²C communications to the various sensors that are present in the system (a pair of distance sensors and an accelerometer)
- (archived built that when I was learning about 3D and VR as a student) The Annwvyn Game Engine, an on-going “toy” project of a C++ VR “application development framework” that is compatible with both Oculus and Vive hardware with the same interface. https://github.com/Ybalrid/Annwvyn
I also contributed some code to various projects
- tinygltf an header-only glTF file loader/serializer https://github.com/syoyo/tinygltf/pulls?q=is%3Apr+author%3AYbalrid
- vl6180_pi a library to talk to vl6180 based I²C IR distance sensors from a raspberry pi in C. https://github.com/Ybalrid/vl6180_pi
- Occasional Ogre3D contributor in the ogre-next project, fixing docs and simplified the initialization of the HLMS subsystem used to generate shader code.