Marino von Wattenwyl
Hi! I'm a software developer tinkering with some things here and there. I've worked on 3D renderers, compilers, VR apps, and websites.
Things I'm Interested In
- Computer Graphics: Graphics APIs, Shaders, Raytracing, Data Structures, ...
- Compilers: Parsers, IRs, Optimizers, Code Generators, Assemblers, Linkers, ...
- Processors: Instruction Sets, Caches, Pipelines, Branch Prediction, ...
- Drivers: Hardware Interaction, OS APIs, Reverse Engineering, ...
- Performance Optimization: Profiling, Vectorization, Garbage Collection, ...
- Virtual Reality: Devices, Tracking, Mixed Reality, ...
Things I've Made
The Banjo Programming Language
A statically typed programming language that compiles to a binary executable. It features fast compile times, metaprogramming and "modern" constructs like sum types, optionals, closures, and tuples. The toolchain is written from scratch in C++ and provides an optimizing compiler, a language server, a hot reloader, and a basic package manager. The compiler emits either binary machine code or assembly depending on the target. Programs can be cross-compiled for Windows, Linux, and macOS(!) from any machine.
AetherVR
GitHub RepositoryAn OpenXR implementation that allows you to play VR games without a VR headset. AetherVR tracks your head and hand movements using a webcam and converts them into inputs for VR applications. It can be made to work sometimes with SteamVR games using OpenComposite.
Things I've Used
- C/C++, Java, C#, Python
- LLVM Tools (Clang, LLD, LLDB, clangd, clang-format, clang-tidy, libclang)
- Compiler Explorer
- Graphics APIs (mainly OpenGL, some Vulkan and some WebGPU)
- RenderDoc
- OpenVR and OpenXR
- WebAssembly and Emscripten
- Windows and Linux, a bit of macOS and Android here and there
- OpenCV
- Docker
- The usual Web technologies: HTML, CSS, TypeScript, SQL, Angular