Français · 日本語

Marc-Alexis Manso-Peters — the text version

Everything the console says, without the console: the same text, in plain HTML, for screen readers, search engines, and anyone who would rather read.

Back to the console (JavaScript required)

About Me

Hi, I’m Marc-Alexis. So, I’m 23, uh… this is my personal website. Below there are icons and all that, and you can click the icons to get all sorts of info about me.

Engineering degree at EFREI Paris, MSc year 1 in embedded systems, robotics & drones major, with an exchange semester at Asia Pacific University, Kuala Lumpur.

Before the code: six consecutive seasons in petrochemicals as a piping & welding assistant at M.T.S. Pau. High-risk sites, real discipline, real hours — it shapes you.

Shipping since late 2024: Vue 3, Nuxt, Three.js, Tone.js, self-hosted Directus on an Ubuntu VPS with Docker and Traefik. Careful front end, my own infra.

Books I recommend

Eleven of the books my notes cite the most. Open one: its author is waiting on the first page.

Flow — Mihály Csíkszentmihályi

A psychologist describes “flow”, a state of complete absorption in an activity, and shows how to bring it about in work, leisure and relationships.

What I kept — The best moments are not passive, they are active.

Factfulness — Hans Rosling, Ola Rosling, Anna Rosling Rönnlund

The authors show that we systematically misjudge the state of the world, and describe ten instincts that distort how we read the numbers.

What I kept — The world is not split in two.

How to Live — Derek Sivers

Twenty-seven chapters each give a different, often contradictory answer to the question of how to live. A conclusion ties them together.

What I kept — Try everything, expect nothing to work.

Art as Therapy — Alain de Botton, John Armstrong

The authors propose looking at well-known works of art as tools for everyday life, and connect them to love, work, nature, money and politics.

What I kept — Art as a tool for personal growth.

Steal Like an Artist — Austin Kleon

A short book, based on a talk to students, in ten principles about creativity. Its central idea: all creative work builds on influences.

What I kept — The burden of total originality.

Dopamine Nation — Anna Lembke

Drawing on neuroscience and patient cases, a psychiatrist explains how the pursuit of easy pleasures leads to addiction, and how to restore balance.

What I kept — The pleasure–pain balance.

The Inevitable — Kevin Kelly

The author describes twelve technological trends he expects to reshape daily life over thirty years, among them sharing, filtering, and access over ownership.

What I kept — Technology has inevitable tendencies.

A Theory of Everything — Ken Wilber

Ken Wilber presents his “integral” theory, which seeks to connect body, mind, soul and spirit, and applies it to business, politics, medicine and education.

What I kept — Why debates across levels of consciousness fail.

Anything You Want — Derek Sivers

Derek Sivers draws forty lessons from starting, growing and selling CD Baby, and argues for a business centred on its customers rather than on profit.

What I kept — Business is not about money.

Race et histoire — Claude Lévi-Strauss

An essay written in 1952 for UNESCO. Lévi-Strauss rejects any ranking of cultures, and argues that progress comes from exchanges between them.

What I kept — Every culture moves, just not in the same direction.

Die With Zero — Bill Perkins

The author proposes spending one’s money during one’s lifetime, on experiences, rather than saving it until death, and offers a method for planning that spending by age.

What I kept — Money is for living experiences.

NFC Implant

There is a chip under my skin. A flexNT: a flexible biopolymer NFC tag, slipped onto the back of my left hand, below the little finger. Passive, battery-free — it only wakes up inside a reader’s field. That is it, on the left.

Type
NFC / RFID
Frequency
13.56 MHz
Chip
NTAG216 — 924 B
Size
9 × 22 × 0.4 mm
Casing
Flexible biopolymer, USP Class VI
Power
Passive, no battery

What I do with it

Bring a phone close and it answers. That is all it does, and it is already far too much.

Why do this?

Because I could. Because turning part of my body into a remote control is exactly the kind of useless, wonderful thing that looks like me.

It is also a small statement: the body is a playground, not a fixed object. Between this, my Obsidian second brain and a few chosen scars, the combination signs an identity — off-kilter, technological, primitive.

The operation

The questions everybody asks

Does it hurt?

One big needle, two seconds. Shorter than a tattoo, and considerably geekier.

Can you be GPS-tracked?

No. It’s passive, battery-free, range a few centimetres. No GPS, no spontaneous emission. Calm down.

What about an MRI?

A flexible biopolymer tag usually goes through fine, but I always warn the radiographer. You can never be too careful.

Can it be removed?

Yes, a small incision does it. But honestly, why would I.

Is it Bill Gates’ 5G chip?

Exactly. He texts me every morning to check in. (No.)

Is it legal?

Legal in France under medical supervision. The Netherlands has the best framework — mandatory studio licensing —, Sweden leads the world per capita, the United States varies state by state.

A half marathon on LSD

On 23 April 2023 I ran the Semi-Marathon de la Presqu’Île, 21.1 km, on 200 micrograms of LSD-25, twice an ordinary dose. I finished. That is about all there is to say in my favour.

Race
Semi-Marathon de la Presqu’Île
Date
23 April 2023
Distance
21.1 km
Substance
LSD-25, 200 µg (ordinary dose: 100)
Official time
2 h 51 min 14 s
Chip time
2 h 48 min 09 s
Speed
7.5 km/h
Placing
1823rd of 1840
In my age group
21st of 21
Club entered
Le Semi Diabolique

Legal disclamer

This web page contains an entirely fictional account of a half marathon run under the influence of LSD. All content presented here is a work of fiction created solely for the purposes of entertainment and educationally educative information.

The author has never consumed LSD nor taken part in the activity described. Any resemblance to actual events, to persons living or dead, or to lived experience is purely coincidental.

This site in no way constitutes an incitement to consume illicit substances or to practise sporting activities. In the manner of pétanque, volleyball, or basketball.

The author and the operators of this deranged web site decline all responsibility regarding:

Lysergic acid diethylamide. A psychedelic: it bends perception, mood and the way you think. Visual and auditory hallucinations, and above all a sense of time and space that no longer measures the same.

It is taken on a blotter, a square of paper on the tongue. The effects last six to twelve hours and vary enormously with the dose, the place, and the state of mind of whoever takes it. Mine, as it happens.

An ordinary dose is one hundred micrograms. A microgram is a millionth of a gram: which is to say, nothing. I took two hundred.

LSD-25, specifically. Others exist, but it is the only one seriously studied. Of the rest we know almost nothing, which is reason enough not to try them.

These substances are not legal and you get hold of them through back channels. Incidentally, to buy LSD, all you have to do is go to

The finisher’s medal, and the certificate to back it up. 1823rd out of 1840, but a finisher all the same.

Last in my age group, out of twenty-one starters. The certificate says so in writing; it would be a shame to hide it.

The photograph is the course, taken that day. Drag the line.

What it actually does: surfaces breathe. A plain wall starts to ripple very slowly, as if seen through water. Regular patterns, gravel, foliage, rendered concrete, rearrange themselves into designs that look as though they had always been there. Colours saturate, edges pick up a second outline. None of it is like a film: nothing is projected in front of your eyes, it is the ordinary world going unstable at its edges. And across three hours of running, it never once stops.

What I took from it

Questions and answers

Why do it?

I was nineteen, I had read a book about a man who covered eighty kilometres in that state, and the book was bad but the idea followed me around for months. There is no better reason than that.

It is legal, right?

No. LSD is a controlled substance in France: a year in prison and a €3,750 fine for use. I am not pretending otherwise.

Did it make you faster?

7.5 km/h and last in my age group. You be the judge.

You ran with your mother?

Yes, she was on the course. She knew what I had taken, and she had taken nothing: she ran sober, like a normal person. I mention it because that is always the next question.

And yes, I am

In a black vigilante cowl, in a cellar. Text covers the image, in French: “non merci, je ne vais pas prendre de côtes de porc, je vous remercie cependant pour votre offre” — no thank you, I will not be having pork chops, but I thank you for the offer.

At night, arms folded against a brick wall under a street lamp, in a black cape and eye mask. Across the top, in green letters: “Super-hero VEGAN”.

In a blue and red superhero suit, red cape, black eye mask, fists on hips, in the middle of a garage. Along the bottom, in large yellow letters: “VEGAN”.

The questions

No, my greatest joy is neither my family nor my girlfriend, but these two cartons. Vanilla Soy™ and Chocolate Soy™.

Where do you get your protein?

Lentils, chickpeas, tofu, seitan, grains. I think about it about as often as you think about yours. The Academy of Nutrition and Dietetics says vegan diets are adequate for every stage of life, top-level athletes included. But thanks for worrying about me.

Aren’t you deficient?

No. One B12 tablet a week. B12 is made by bacteria, not by animals. A steak has B12 because the cow was supplemented or ate bacteria.

Plants feel pain as well, no?

No, you absolute idiot. Plants have no nociceptors and no nervous system. This is Year 8 biology. (dickhead)

Lions eat meat, though.

Are you a lion, dickhead? Has your Lion™ got a dickhead’s iPhone 17 Pro Max?

Fine, but it’s nature.

Lions kill their rivals’ cubs, but funnily enough meat is the only place that example ever comes up, because the day I kill a competitor’s children you all start whining that I killed your kid. Make your mind up at some point, for crying out loud.

I could never, I love cheese / meat / insert something I don’t eat but you enjoy far too much.

ok. don’t remember asking though. you watch yourself.

What’s your annual salary?

Right, now there is no connection to veganism whatsoever! But I hear you, the question is legitimate — the context just isn’t.

Humans are omnivores by evolution.

Human evolution is descriptive (what happened), not prescriptive (what ought to be). Evolution also gave us farming, cooking and supermarkets. Follow the evolutionary logic and we should all be eating our meat raw.

Are you a model vegan?

As an individual? Absolutely, I am an example to one and all. As a vegan, though, no: it’s true, and I confess, sometimes I buy Kinder Country bars full of milk. But they are so fucking good, I can’t resist the sirens of capitalism forever. And sometimes I kill cows with a knife, just for fun too.

My internship at Kyber

Kyber

Kyber builds the infrastructure that drives machines remotely, in real time: robots, drones, vehicles, remote desktops. I have been an engineering intern there since September 2026.

What it is
real-time infrastructure for machine control
On one link
video, audio, control inputs and telemetry, on a single clock
Latency
8 to 10 ms end to end, as announced
Transport
QUIC and HTTP/3, encrypted end to end
The code
an open source SDK, under the AGPL v3
Platforms
Windows, Linux, macOS, Android, iOS, XR headsets
The team
the one that built VLC
Why 8 ms

According to Kyber, hand-eye coordination runs at 30 to 50 ms. Below that, the robot does not respond after your hand moves, but as it moves. At 200 ms you are watching; at 8 ms you are controlling.

Not WebRTC

WebRTC was built for video calls between humans, where 100 to 200 ms of latency is fine. To drive a machine, it is too much: Kyber has its own protocol, and says so.

VLC

The founding team built VLC, installed on billions of devices, and contributed to FFmpeg, which encodes most of the video on the internet. Twenty years of video, turned towards machines.

The job

Embedded developer, as an intern. Not one topic for six months: demos, several projects in parallel, and you have to adapt.

Role
embedded developer, intern
Since
September 2026, for six months
Studies
MSc year one in embedded systems, EFREI Paris
Languages
Rust, C and C++
Systems
ESP-IDF, embedded Linux built with Yocto
Robotics
ROS 2, dora-rs, MAVLink
On the bench
KiCad, soldering iron, multimeter, lab power supply
From the bottom up

I am learning electronics from the bottom up: schematics, boards, what gets hot.

Day one

A small topic to start with: compare ROS 2 and dora-rs, two ways for a robot’s programs to talk to each other, and check the licences of every dependency of dora-rs. Closed within a week.

Measuring latency

The main project: a bench that measures the latency of a display, the time between a key press and the image changing. A light sensor stuck on the screen, a tablet that keeps time.

The board
M5Stack Tab5, on an ESP32-P4
The firmware
Rust, on ESP-IDF
The interface
Slint, in Rust too
The sensor
a photodiode, read by the analogue converter
What it measures
key to image, the frame rate, the gap between sound and picture
Reliability over finesse

The rule set at the start: nothing complex that could break, even if it costs 2 ms of precision. It ruled out an adjustable comparator, and the idea of soldering a wire into a real keyboard.

The 50 Hz

A 50 Hz interference shifted every measurement. The software filter worked around it; the cause was a power strip lying against the sensor’s wires. Once removed, the interference shrank tenfold.

The solder joint

An hour and a half lost on the setup, for one solder joint on the photodiode. Since then: diagnose wire by wire from the start, measure before blaming a part.

A/B

Before blaming a new firmware version, an A/B test: the same setup, both versions, five minutes apart. It was not the culprit.

The real signal

A synthetic test does not replace a real run: recordings from the actual bench became tests.

Robots

A robot dog to get walking, driven with a gamepad through Kyber. And the team’s robotics, seen from a little further away.

The robot
Mini Pupper 2, an open source quadruped by Mangdang
Inside
a Raspberry Pi CM4, and an ESP32-S3 for the servos
The system
a Linux image built with Yocto
Driving
a gamepad, through Kyber
Protocols
MAVLink, UDP
The port

The dog’s software is made for Ubuntu. My task: port it to a Yocto image, with the camera, the screen, the servo board, the gait and the gamepad.

Read what runs

The servo board stayed silent: the official software opened a serial port under its old name, and the system shipped with the dog ran on a fixed version. Lesson: read what runs, not just the repository.

Further away

A NMEA 2000 bus on a boat, a GMSL2 camera on a small Linux board: research for projects that others carry.

Boards

Circuit boards: drawing them, reviewing them, bringing them up.

Software
KiCad: schematic, routing, ERC and DRC
Form factor
Raspberry Pi HAT
Microcontrollers
SAMD21, RP2354A, ESP32-P4
Firmware
PlatformIO, and some Rust
On the bench
lab power supply, multimeter
Stock

The best regulator on paper had no stock at the assembler. Lesson: availability decides as much as the datasheet.

Reviewing

Reviewing other people’s boards, from scratch. A mistake not to repeat: check both the tracks and the copper zones before stating a width.

Bring-up

A brand-new SAMD21 board does nothing on its own: a test firmware, tests from the PC, and the procedure to flash it.

My Linux setup

NixOS

Both my machines are described in a single git repository, from the kernel to the cursor colour. Nothing gets in because “it was there before”.

Distribution
NixOS, and home-manager for the rest
Method
one flake, two machines
The tower
dieu — i5-6400, Radeon RX 580
The laptop
ThinkPad P14s — Ryzen AI 7 PRO 350
Non-free
allowed package by package, never wholesale
The docs

Every documentation page lists the files it describes. A commit that changes the configuration without updating its page is refused, and the docs site republishes itself after every commit.

The desktop

Hyprland tiles the windows, a hand-written bar says what’s wrong, and everything is orange on black.

Compositor
Hyprland, configured in Lua
One config
for two machines: it reads their name
Bar
Quickshell, in QML
Theme
“braise” (ember) — #ff6b1a on #0e0e0f
Shapes
squircles, not rounded corners
Fonts
Figtree, and a custom-built Iosevka
The bar

It replaced three programs at once: the bar, the launcher and the notifications. Its rule: if something’s wrong, show it; otherwise, nothing.

The wallpaper

A matrix of glowing dots, animated in a shader. Before it: a neon tunnel, a photo, a ribbon sky and a sea horizon. All rejected.

Zero shortcuts

A half-saved config was loaded as is. Hyprland ran with zero keyboard shortcuts, without a single error message.

The terminal

One kitty window, one tmux session. Hyprland does the tiling, not the terminal.

Emulator
kitty
Multiplexer
tmux
Shell
zsh in vi mode, starship
Editor
Neovim, described in Nix with nixvim
Tools
fzf, zoxide, eza, bat, fd, ripgrep
Also
yazi, lazygit, btop
13.5

The terminal font size isn’t a matter of taste: it’s computed to land on whole pixels at the screen’s 4/3 scale.

Neovim

Its whole configuration is written in Nix, about 1,400 lines, with the space bar as the leader key.

Willy Wonka

My keyboard is split in two, wireless, and named after a chocolatier.

Model
Corne Choc Pro, by Keebart
Link
Bluetooth, one half per hand
Screens
a nice!view on each half
Firmware
ZMK, built at home
Layout
QWERTY, home row modifiers
Layers
six
The screens

Every layer has its animation: real props from Charlie and the Chocolate Factory (2005) spinning in 3D. The Golden Ticket, the lollipop, the Wonka Bar, the Smilex toothpaste.

The name

It was called Cyril Hanouna until October 4th, 2026.

Dictation

One layer has two keys for it: one records my voice, the other pastes the transcript.

My tools

Two tools I wrote for myself, living in the terminal: my tasks and my calendar.

Stylite
tasks — server and CLI in Go, TUI in Rust, web in Svelte
Comput
calendar — CLI in Python, TUI in Rust (ratatui)
Where
on my server; both my machines talk to it directly
The calendar
self-hosted, CalDAV: the iPhone reads it too
Stylite

The home-made task manager. An inbox, today, upcoming, a logbook of what’s done; projects, headings, deadlines. Every task of this site lives there.

Comput

The calendar: month, week, day and agenda views, events at their place and length, side by side when they overlap, and a line for the current time. It replaced khal and vdirsyncer.

The TUI

A text interface, in the terminal, keyboard only: j and k to move, ? for every key, a comma to open every command. Nothing waits: the first screen comes from the cache, the sync follows in the background.

The settings

Theme, layout and keys are described in my NixOS config and checked at install time: a key bound twice fails the install, not the launch. Both wear the “braise” theme.

The safety net

Every Comput command also answers in JSON, and every write can be undone: u reverts the last one, exactly. An event changed meanwhile on the phone isn’t overwritten, it’s refused.

The quirks

The useless stuff, or nearly.

Anti-croissant

Use my unlocked laptop to announce that I’m buying croissants for everyone, and the message gets replaced, the webcam takes your picture, and the screen locks on “NO CROISSANT FOR YOU”. It also catches “crwassan” and “tnassiorc”.

The lid

The red dot of the ThinkPad logo spells “marc-alexis” in Morse code, forever. So does this one: watch it. It’s useless, on purpose.

juice

A home-made power and sleep tool. It changes its settings depending on where I am, and turns off the CPU boost so the fan stays quiet.

Projects

I configure my toothbrush from a terminal. Everything else is in the same vein.

nothing-toolbox

nothing headtrack in a terminal, animated: white low-poly headphones above a grid floor, following the movements of the head as it nods, turns and tilts.

A single command-line tool that drives my headphones, the Nothing Headphone (1), from Linux: noise cancelling, EQ, codec, battery, and their orientation sensor. No phone, no app, no account.

Language
Rust, MIT licensed
Link
classic Bluetooth, RFCOMM channel 15
Frames
0x55 header, CRC-16/MODBUS
Tested on
Nothing Headphone (1), model B170
Since
October 2026
One channel

The headphones take one connection at a time: a second one is refused. So a daemon holds the channel and serves every other command through a local socket. Toggling noise cancelling takes about 0.3 s on its own, 50 ms through the daemon.

Nodding

The headphones send their orientation as quaternions, about ten times a second. nothing headtrack --viz draws a low-poly 3D headset from it in the terminal, PS2 style; nothing gestures turns a nod into play/pause and a shake into the next track.

The EQ

nothing eq edit draws the curve in the terminal and sends it to the headphones while you move the bands. The overall gain is computed exactly as the app computes it.

The protocol

It is written down in the repository, and every fact carries its status: seen on the device, read from the app, or inferred. Switching from AAC to LDAC reboots the headphones, back after about 7 s.

laifen-toolbox

laifen tui in a terminal, animated: a low-poly polished steel toothbrush turns on a grid floor while brushing, and the panel with modes and battery counts the seconds.

The same idea, for my toothbrush, a Laifen Wave: its four modes and their settings, brushing time, the 30-second reminder, the battery, and a 3D view of the brush in the terminal. No phone, no app, no account.

Language
Rust, MIT licensed
Link
Bluetooth LE, through BlueZ
D-Bus
spoken by hand, no library
Frames
0xAA header, XOR checksum
Tested on
Laifen Wave, model LFTB01-P
It sleeps

The brush falls asleep after each command, and usually takes about twenty seconds to show up again; once, two minutes. So laifen shell runs several commands over a single connection.

Care

The protocol can factory-reset the brush or rewrite its firmware. laifen only sends commands tried on a real brush, read back, then restored; the others are not written.

The 3D view

laifen tui draws a low-poly brush in polished steel, PS2 style, on a mirror floor. While it brushes, its head swings with the mode’s range and speed, slowed down so you can see it.

kishot

A kishot sheet: a circuit board in six 3D views, top, bottom, three-quarter and profile, under a header that describes it.

It turns a KiCad board into sheets you can send: six 3D views, the copper layer by layer, each under a header that says what the board is. One command, no GUI, the same picture every time.

Language
Python 3.9+, one file, no dependencies
It drives
kicad-cli and ImageMagick
KiCad
versions 9 and 10
Licence
MIT
What changed

kishot --diff compares the board with an older git revision: copper removed in red, added in green, each change ringed so a short track still shows, and a GIF that fades from one to the other.

Before ordering

On demand: a visual BOM, the Gerbers redrawn by another tool than KiCad, the silkscreen as the fab prints it, and 1:1 PDFs to lay the real parts on paper.

Pull requests

A GitHub Action comments a pull request with the diff sheets, and updates its comment at each push. About two and a half minutes a run, mostly downloading KiCad.

The turn

kishot -s spin turns the board on itself at 20 frames a second, as a GIF pixelated like a PS2 game.

Bouillon

Bouillon’s search page, for the word “blue”: a grid of thumbnails, reduced here to flat patches of colour.

An image archive, mostly from Are.na. Each image gets its tags from Claude Haiku and a vector for semantic search: you find it by a word, or by a nearby idea.

Server
FastAPI, SQLite and sqlite-vec
Search
by keyword, by meaning, or both
Terminal
a client in Rust
Mac
a native app in Swift
On demand

The server only runs when it is used: a front door starts it on the first request and stops it after fifteen minutes without a visit. The 2 GB process only runs when it serves.

In the terminal

The Rust client shows the images in the terminal: real pictures in kitty, half-blocks elsewhere. One mode goes through Are.na one image at a time; keep it, or skip it.

On the Mac

For the native app, the CLIP model converted to Core ML: a cosine of 0.9997 with the original, on images. On an M4, 5,880 thumbnails go through in 177 seconds.

juice

juice’s dashboard in a terminal: power flowing from the charger to the system and the battery, the curve of the last two hours, and the battery’s state.

A home-made tool for the laptop’s power and sleep. One binary, three roles: a dashboard in the terminal, a daemon that does the work, and the commands of the bar and the desktop.

Language
Rust: ratatui, wayland-client
Context
the network, mains or battery
Idle
the ext-idle-notify-v1 Wayland protocol
Since
October 2026
Presets

A list of presets, each with its conditions; the first one that holds applies. The file is read again when it changes, nothing to reinstall. So that a wifi dropping for a second changes nothing, it only moves down the list on the second reading in a row.

The fan

Switching to the balanced profile brought the fan down from 5,290 to 4,460 rpm, and the CPU from 80 to 67 °C. Turning boost off caps it at 2 GHz instead of 5.09: anything heavy is much slower, that is the price.

Live

The idle timers go through a Wayland protocol: delays change without restarting anything.

This site

This site’s home screen: the character in the middle of a burst of cyan glass towers, and the menu on the right.

The site you are reading: my portfolio, replayed in the dashboard of a PlayStation 2. Black background, cyan glass towers, yellow labels, memory cards.

Interface
Vue 3, Vite and Pinia
3D
Three.js: the field, the objects, the head
Style
hand-written CSS, no framework
Sound
samples from a real PS2
The aquarium
a write service in Rust
Since
July 2026
The towers

The real console draws one glass tower per game, its height set by the time spent on it. Here, one tower per door of the home screen, its height set by how much there is to read behind it.

The objects

The 3D objects of this page and of the other pages are written in code, and share a single scene, lent from page to page: a browser only holds about fifteen WebGL contexts.

As text

The whole site also exists as plain text, in French, English and Japanese, for screen readers.

The secrets

Sixteen easter eggs, to be found. The counter at the top says how many are left, never where to look.

Contact

The simplest way is an email. No form, no robot in between: it lands in my inbox, and I’m the one who opens it.

System

The towers

A PlayStation 2 dashboard draws one glass tower per save sitting on the memory card. Here it’s one tower per menu entry: the glowing one is the one you are pointing at.

The blocks

The drifting purple cubes are the card’s free blocks. There are some left, so this site is not finished. It never will be.

The real site

marc-alexis.com does exist, in three languages, with a full OS and collectible figurines. This one is just another memory card.

The 3D models

The chest, the wreck, the rowboat, the axolotl and the hammer come from Sketchfab under Creative Commons licences: “Minecraft Chest” by Blender3D, “Fishing boat” by Pabooklas, “Minecraft boat” by vovash, “Minecraft Axolotl” by Marina Vildanova, “Toy Hammer” by Pedro Perim. They were cut down from 41 MB to 344 KB to fit here. The crab is Ferris: character by Karen Rustad Tölva, 3D model by RayMarch, public domain. The two chest sounds come from Minecraft.

The head

The head on “About me” starts from FLAME 2023 Open, a head model by the Max Planck Institute for Intelligent Systems (T. Li, T. Bolkart, M. J. Black, H. Li and J. Romero, SIGGRAPH Asia 2017), under a CC-BY-4.0 licence. It was fitted to four photos of Marc-Alexis, then cut down to 1,342 triangles.

The logos

On the Linux page, the NixOS snowflake is redrawn in 3D from Tim Cuthbertson’s logo for the NixOS project (CC BY 4.0), and the Neovim logo from Jason Long’s (CC BY 3.0).

The covers

The covers in “Books I recommend” belong to their publishers and illustrators. They are shown small, to recommend the books, nothing more.

The portraits

The authors’ photos, on the page of an open book, come from Wikimedia Commons, cropped and scaled down: Mihály Csíkszentmihályi by Ehirsh (public domain), Hans Rosling by the Gapminder Foundation (CC BY 3.0), Derek Sivers by himself (CC BY-SA 4.0), Alain de Botton by Fronteiras do Pensamento (CC BY-SA 2.0), Austin Kleon by Larry D. Moore (CC BY 4.0), Anna Lembke by EthicsinSociety (CC BY 3.0), Kevin Kelly by Cmichel67 (CC BY-SA 4.0), Ken Wilber by Kanzeon Zen Center (CC BY 2.0), Claude Lévi-Strauss by Bert Verhoeff for the Nationaal Archief (CC0), Bill Perkins by the World Poker Tour (CC BY 3.0). The cropped versions of the CC BY-SA photos remain under the same licence.

The project logos

On the Projects screen, the technology logos come from Simple Icons (CC0). Each remains its owner’s trademark, used to name the tool; Rust’s is under CC BY-SA 4.0 (Rust Foundation), KiCad’s under GPL 3.0 or later, Wayland’s under the MIT licence. The board on kishot’s sheets is Lord’s Boards’ RoyalBlue54L Feather, under the CERN-OHL-P v2 licence.