Giter VIP home page Giter VIP logo

defmt's Introduction

Hi, I'm Ryan ๐Ÿ‘‹

I'm a Rust developer, passionate about building realtime systems. I do a lot of open source VR development, especially for full-body motion tracking in games like VRChat.

I also like to dance and go bouldering.

If you would like to support my open source projects, you can fund me at ko-fi.

Current Projects

Click to expand

SlimeVR

SlimeVR is an open source organization for full-body motion capture in VR. It uses IMUs and a forward kinematics model to allow social VR users to have legs in games like VRChat. I am a core contributor in the org, and the primary author of several components of the ecosystem.

The four main things I work on under this umbrella, are located in the SlimeVR-Rust monorepo or in SolarXR.

I develop bare metal embedded rust on the ESP32C3 and NRF52840 microcontrollers, which takes IMU sensor data, does sensor fusion, and sends that data over WiFi or BLE. I use async/await and embassy for concurrency without the need for an RTOS1.

This firmware has been really fun to work on and is what I spend most of my time on right now.

If that sounds exciting to you, open a PR or support my work so I can buy more hardware :)

I also am the primary author of an OpenVR overlay for SlimeVR, which renders a simple 3D view in VR of the pose of the user. This has been critical in debugging SlimeVR, and allows power users to tweak their settings in real time.

I also created ovr_overlay, which allows rust code to access the C++ based OpenVR API. Prior to this work, only fairly out of date and unmaintained bindings to the C API existed. I used autocxx to easily write FFI for the C++ code.

I created an experimental skeletal model that can solve the user's pose. The goal is to be more general purpose than the current (trigger warning) Java based model that the official server uses, with several new features like arbitrary positional constraints, adjusting mounting calibration without a full reset, and supporting languages other than Java, via FFI.

Unfortuantely, a lot of the skeletal model is still feature incomplete. If you are interested in helping me build this, reach out to me on the SlimeVR discord.

I maintain and co-authored the SolarXR protocol, which is a Websocket and Flatbuffer based networking protocol that allows applications (like the GUI and overlay) to work with the SlimeVR server.

After we adopted the protocol, it allowed the team to break the gui code into its own app and adopt technologies like tauri, typescript, and react, with clearer separation of concerns, less code, and prettier UI/UX.

Tech I think is cool

Rust Neovim Bazel Buck2
WebAssembly Bevy WebGPU

Footnotes

  1. Real time operating system โ†ฉ

defmt's People

Contributors

benmkw avatar birkenfeld avatar bobmcwhirter avatar bors[bot] avatar briocheberlin avatar dajamante avatar dblouis avatar dbrgn avatar derekdreery avatar dirbaio avatar disasm avatar eupn avatar hdoordt avatar jannic avatar japaric avatar javier-varez avatar jhbruhn avatar jonas-schievink avatar jonathanpallant avatar justahero avatar kellda avatar lotterleben avatar mathiaskoch avatar mattico avatar mirabellensaft avatar newam avatar sh3rm4n avatar spookyvision avatar urhengulas avatar wasabifan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.