Marino von Wattenwyl

Profile picutre

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 Repository

An 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

Links