I'm a videographer, photographer, live improvisational visual artist, activist and a functional programmer. I spend a lot my time thinking about the systems of my surroundings. Currently I'm in the process of developing as an artist, while using and evolving my videosynthesis instrument niseq.


rand [at] r7p5 [dot] earth 


Interactive rhythm-machines with Fry and FRP

At F#nctional Copenhageners, October 2023

Talk on Fry - a library that exposes elegant operators for constructing rhythm-machines and other interactive systems, together with FRP. These concepts can even be reused outside of the audio/visual context; 'envelopes' triggered by events are for example directly useful for animating GUIs.

Mtag, the immutable filesystem tagger

At F#nctional Copenhageners, March 2023

A live demonstration of the compositional mtag CLI semantics, its expressive query-DSL, and a walkthrough of its functional OCaml codebase.

Niseq, the granular video synthesizer

At Cph Music Maker Space, August 2021

In this talk I went through the ideas and history behind niseq and a couple of new workflows I implemented to create longer improvisational pieces of art. I performed a short livesession on top of a an unreleased piece of music made in Super Collider. Interesting discussions ensued in the Q/A session.

Niseq: Rethinking how live visual art is made

At Bornhack, 2020

This talk is one of my first public exposures of niseq. It includes the ideas behind niseq as a tool and the technology. It also begins with a short live improvisation - where the full performance at the same festival is here.

Pure functional game programming in OCaml

At F#nctional Copenhageners, 2019

Flappy is a simple, pure, functional reactive game in the browser. It's implemented with an Elm-like structure, game-entity subtyping using polymorphic variants, local multiplayer and collision-detection.

MirageOS demo

At F#nctional Copenhageners, 2017

Users connected to each others unikernels, each unikernel visualizing its connections.


At F#nctional Copenhageners, 2016

The implementation of an interactive art-installation using OCaml running on the Raspberry Pi with sensor-input, and interfacing with Supercollider.


Developer and artist at rand7plan5

Keywords: Art, live performance, improvisation, visual synthesis, cinéma pur, art installations, modular synthesizer development and design, OCaml, FRP, OpenGL, Zmq

Collaboration with Ekkoflok Elektronics on developing a new type rhythm module, based on bpm-modulation.

Fullstack developer at Robur.io

Keywords: OCaml, MirageOS, ELF analysis, package dependency analysis, no-JS interactive visualizations (CSS + SVG)

Developer and artist at rand7plan5

Keywords: Art, live performance, improvisation, visual synthesis, cinéma pur, OCaml, FRP, OpenGL, Zmq

Fullstack Scala programmer at Paqle

Keywords: Entity-linking, algorithms, react, databases, services, GNU/Linux, functional programming

OCaml programmer and sysadmin at Purebyte

Keywords: Diagram library, GNU/Linux, postfix mailserver, GDPR, functional programming


Separate courses

  • Programming Languages at Washington University (Coursera)
  • Sound-synthesis using Functional Programming at DTU
  • Machine learning at Stanford (Coursera)

Computer Science and Philosophy at Roskilde University

  • Notable courses: Interaction-design, AI, discrete mathematics
  • Projects
    • Natural language processing in OCaml
    • Analysis of scraped LinkedIn profile-types + ANT analysis
    • The ideals behind programming languages
    • The definition of art today
  • Art installations
    • Intentionally unhelpful automatic door
    • Blue room with warped projection of spectator
    • Interactive synth-ball installation at inner Copenhagen
  • Teaching
    • Functional programming in OCaml at introductory programming course (1 session)
    • Introduction to pure functions for beginners (1 session)
    • Assisting teacher for programming course in Processing

Photography at Fatamorgana, Copenhagen

Film at Copenhagen Film and Photo-school