Ben Foxall
banner
benfoxall.bsky.social
Ben Foxall
@benfoxall.bsky.social
120 followers 200 following 79 posts
I love the web, data, spatial, robotics and hacks. Prev, Robot Web at Wayve 🫶 🤖 🚗
Posts Media Videos Starter Packs
oh wow, that map view is cool. There's so much train data that I know nothing about.

Dunno if you've seen trntxt.uk by Dan Pope? It's very very data optimised (most page loads are <2k single rt)
Train Text
A data-friendly train times service for Great Britain.
trntxt.uk
Everything comes from a single endpoint `getCurrentTrainsXML` api.irishrail.ie/realtime/

I did some git-scraping for a few days, pulled everything into DuckDB and generated a csv file to pull into the frontend.
Our central signalling system is subject to ongoing work to support this real-time facility. However real-time information has weaker coverage in certain areas, these include:
api.irishrail.ie
I've been playing around with visualising Irish rail data

benjaminbenben.com/trains/
Reposted by Ben Foxall
I dug into progressive image rendering and found a bunch of common assumptions aren't quite true.

➡️ JPEG & WebP progressive-renders worse in Safari
➡️ AVIF _does_ support progressive
➡️ But JPEG XL in Safari doesn't
➡️ JPEG XL decodes much slower than AVIF
⬇️ and more

jakearchibald.com/2025/present...
The present and potential future of progressive image rendering
Exploring progressive image rendering across JPEG, PNG, WebP, AVIF, and JPEG XL.
jakearchibald.com
Additional point: I don't want to store user emails at all if possible. Nice way to do this is storing a hash of the email to check against when they request a magic link.
My ideal auth flow is using a Magic Link to validate a Passkey, and then use that for future logins. That way, the user gets fewer emails and can log in more quickly.

This post is really good – rmondello.com/2025/01/02/m...
I like how copilot uses the PR description to explain the plan.

Is this a tool for letting people add their own feeds to your reader? (I added mine 😎)
Were you at the Future of Coding meet last April by any chance? I was talking about using qr codes to transfer data and showed a signalling demo with it.
Great to see him dropping some new tracks
Aligning video to viewport. I'm quite happy with this!

Driving this from the native <video> element is handy, here I can increase the playback speed through the native controls.
Rendering the video aligned to the interpolated pose (plus some fixes to how I was converting colmap frames).

Not sure what's going on with the bouncing in this corner, but overall it feels pretty nice.
Interpolated pose linked to <video> element playback.

TIL `.requestVideoFrameCallback`, pretty neat for syncing other elements to video timestamps.
I made a thing - reading the colmap model and then plotting images where they were captured. It's using the full size images so it's like 200mb at the moment, though I'm wondering about using the video (smaller and will have 30x more frames).

Hacked together with html/threejs + vibes from gemini
Thanks! "Random clicking stuff until things look cool" probably sums up a lot of my process to be honest 📊
SuperSplat Editor is awesome.

Let's you rotate/crop/export a splat intuitively.

Published: superspl.at/view?id=919d...
I managed to generate my own splat. It's not as neat/good as Polycam, but it's something to play with.

github.com/pierotofy/Op...
I chucked the images into Polycam, and this is exactly what I was looking for. Such a great tool.

poly.cam
I managed to get some positions with colmap

1. extracted the video frames at 2hz with ffmpeg
2. clicked stuff in the gui

colmap.github.io
I found a SRT viewer which parses the subtitle file, generates a path and outputs different formats. That's pretty cool (and way better than what I was going to try and throw together)

djitelemetryoverlay.com/srt-viewer/
VLC shows the subtitles pretty well.

They're useful, though it doesn't capture the orientation of the drone/camera, only the position.
I've got 3 files

DJI_20250701104824_0371_D.MP4 (3.5G)
[...].LRF (489M)
[...].SRT (3.8M)

MP4 is the video, LRF (Low-Resolution File) is a smaller version of the video for previews/editing, SRT is a subtitles text file which adds some camera and location metadata for the frames. (manually enabled)
I'm going to play around with some drone footage I captured the other day.

It's a 4 minute video around a place I camped a few nights ago, captured with a DJI Mini 4 Pro (which I love!)
Ok, it's not my machine. Checked on a second laptop/network & a remote VM, and I can see the phishing site in the results.

This is weird, Google serves me a single phishing site response for a term where there's plenty of results from a github search.