Sign up

Niels Leenheer

Not verified No WebSub updates No webmention support Valid

Public posts from @html5test@front-end.social

Generator
Mastodon v4.7.4
Public lists
btconf 2026 speakers
Fetched

Niels Leenheer Valid
Text

RE: https://front-end.social/@html5test/116686493760532281

Every time I decide to write a talk I underestimate the time I need. I do have a rough idea, but there is this whole period of me just making random slides. Sometimes weeks.

Then suddenly I am happy. Build the rest of the talk in a day or two. Way too long. Cut in half. And it just fits together.

Niels Leenheer Valid
Text

I haven't yet made plans for speaking at conferences this fall – limited time and writing another talk kind of felt too much...

Now that the CSS Day talk is ready, I really think the CSS DOOM chapter would work really well as a standalone talk.

Hit me up in my DMs – love to talk about CSS DOOM

Niels Leenheer Valid
Text

This weekend was full-panic mode for #cssday as I had not a single slide or even an outline. And the conference is next week.

It took a couple of days, but last night I finished it and thought I could relax again.

Did a full run-through today and I’m about 15 minutes long. Back to panic mode.

Niels Leenheer Valid
Text

RE: https://mastodon.social/@btconf/116651922667550532

It has been such an honour to be on the Beyond Tellerrand stage. I've given dozens of talks and this one felt very much like a personal journey through some projects I never meant to show on stage.

I had so much fun creating all of this and I think it shows in the video. Thank you, Marc!

Niels Leenheer Valid
Text

I can't believe this actually works.

The game loop sends renderer commands to an orchestrator that fans out the commands to multiple local completely independent renderers.

Each renderer gets the same commands and can decide to override the camera position.

Niels Leenheer Valid
Text

One of the things I started doing recently is to add recording and visualisations straight into my demos. Great to export and then include in a talk.

In this case I am showing 4 different renders, from my original oscilloscope version of DOOM and several intermediate steps of the CSS renderer.

Niels Leenheer Valid
Text

I guess this is a sign that I should start with my #CSSDay presentation 😬

Niels Leenheer Valid
Text

I just saw the full schedule for #cssday and oh my... just look at all of those names. 🤩 The best and the brightest of CSS all in one room and then there is also me. No pressure, no pressure... It's gonna be fine 😅

https://cssday.nl/schedule.html

Niels Leenheer Valid
Text

Been using Claude Code to add network support to cssDOOM and... I have opinions:

Claude is brilliant and able to solve complex problems. But it uses band-aids and shortcuts to achieve that. It is an extremely fast lazy programmer that is able to create technical debt quicker than any human being.

Niels Leenheer Valid
Text

Multiplayer cssDOOM on your phone? Yeah, it works. Just no good way to control it. But yeah. It can render two scenes side-by-side without any major issues. 🤯

If only you could start a network game from your phone so your friends can join you… coming soon 😱

Niels Leenheer Valid
Text

In theory it could do four players. But two is pretty much the maximum the browser can render simultaneously.

But that is okay. Rendering one DOOM in CSS is already crazy. Rendering two at the same time is insane. Yet it works.

On a side note: my eleven year old is already beating me.

Niels Leenheer Valid
Text

Made progress with cssDOOM last evening. Created a special multi-player deathmatch version for CSS Day that runs in k...

Made progress with cssDOOM last evening.

Created a special multi-player deathmatch version for CSS Day that runs in kiosk mode. It uses a video wall controller to split up the screen into sections. On the computer it is just one full screen window, but it drives two separate screens.

Niels Leenheer Valid
Text

RE: https://podcasts.social/@workingdraft/116560103634569468

It is always fun to talk about my weird little projects, but this turned in to such a lovely chat. Want to know a bit more background about cssDOOM, my bad clock project and CSS on oscilloscopes? Check it out!

Niels Leenheer Valid
Text

Sometimes your rabbit hole has another rabbit hole which has another rabbit hole. Not even sure how many levels deep I am in this right now.

Yes - network cssDOOM is coming – want to do it right – but last night I spend 4 hours working on recreating the DOOM letters as COLR/CPAL web font.

Niels Leenheer Valid
Text

I know this is getting ridiculous, should I also add network play for cssDOOM?

The whole infrastructure had separated rendering and game loop from the start. Extended this to support rendering using a message channel. Using BroadcastChannel right now, but no reason why it could not be WebRTC.

Niels Leenheer Valid
Text

Maybe have a Hammerspoon script running in the background that monitors if the browser is still active, and if it isn't it will automatically start it. Might be helpful in both scenarios.

Niels Leenheer Valid
Text

The whole goal is to have something playable at CSS Day with two monitors.

Two possible solutions: use split screen and a video wall controller to direct each side to a different monitor. Should work very well. Very solid. Just one browser, one window.

The other solution is to connect each screen and simply use two windows and full screen each. Maybe a bit more fragile. The communication between the two windows is pretty solid, but what if it crashes... who is going to start it up again?

Niels Leenheer Valid
Text

Deathmatch cssDOOM is coming soon! Still plenty of small issues, but it works already pretty well.

Added side-by-side and also multi-window. Has one advantage, that if the other player gets annoying and tries to kill you, you can just close his window and you win.

Niels Leenheer Valid
Text

This is happening! Multi-player cssDOOM death match. Rendering was already pretty much decoupled from gameplay, so the two side-by-side viewports were *almost* free. Still so much work to do, but made significant progress.

In other news, I did not get much sleep last night.

Niels Leenheer Valid
Text

Been a weird day.

First a very nice conversation with @Schepp and @hcr as a guest on the @workingdraft podcast. Then troubleshooting at work. And now in an airport hotel working on multiplayer cssDOOM.

Tomorrow I am heading to London - not for a conference or work, but for fun. The Big Push is playing tomorrow in the O2 Academy Brixton and I'll be there.

Any suggestions for a place in London to get some work done?

Niels Leenheer Valid
Text

Am I really doing this? Maybe... Not even sure if I can pull this off in about a month or so before CSS Day. Wouldn't...

Am I really doing this? Maybe... Not even sure if I can pull this off in about a month or so before CSS Day.

Wouldn't it be cool if you could play cssDOOM during the breaks and try to beat other attendees in a two-player Death Match game.

And I still have to write my talk too...

https://cssday.nl

Niels Leenheer Valid
Text

After three insanely busy weeks with first @smashingconf and then @btconf I’m spending time with the family. Checked into a hotel and we’ve got three whole days of relaxing and hanging out in the spa.

Niels Leenheer Valid
Text

Good morning from Düsseldorf! #btconf is about to start.

Niels Leenheer Valid
Text

Just arrived in sunny Düsseldorf for #btconf. First thing… I need to find something to eat. Anybody else already in town?

Niels Leenheer Valid
Text

Is this too much stuff for a talk? Just wondering if I maybe overdid it…Nah. Anyway too late now. I’m off for @btconf

Is this too much stuff for a talk? Just wondering if I maybe overdid it…

Nah. Anyway too late now. I’m off for @btconf

Niels Leenheer Valid
Text

I am bringing two laptops. One for Keynote, one for the demos.

Instead of switching video between the two I am using an Elgato screen capture device that takes the HDMI output of the demo machine and inserts it as live video in the Keynote slides.

Works really well.

Niels Leenheer Valid
Text

My office is in utter chaos. Tomorrow I am leaving for Düsseldorf for @btconf and I’ve never had so much tech to take...

My office is in utter chaos.

Tomorrow I am leaving for Düsseldorf for @btconf and I’ve never had so much tech to take with me.

The talk is done. Has been for a week. But this is me practicing the demos and figuring out the tech that I need to bring.

Niels Leenheer Valid
Text

CSS is DOOMedTomorrow I will be the special guest on WeAreDevelopers Live 🎙️ where I will talk about my latest projec...

CSS is DOOMed

Tomorrow I will be the special guest on WeAreDevelopers Live 🎙️ where I will talk about my latest project: DOOM but fully rendered using CSS.

https://www.wearedevelopers.com/en/live

Niels Leenheer Valid
Text

Most of my talk preparations follow this pattern:

1. Idea
2. Worry about having enough content
3. Worry more about finishing 20 minutes early
4. Make slides
5. Practice
6. Panic, because it is 20 minute over time
7. Remove about a third of my talk
8. Panic, because I removed all the good jokes...

Niels Leenheer Valid
Text

HTML DOM in Canvas? No. DOOM-ception in Canvas.

Maybe I should be working on my slides for Friday, instead I'm at @smashingconf.com creating a playable DOOM terminal in my cssDOOM project. It is a Canvas with an iframe of cssDOOM. And... it works. You can play DOOM in DOOM.