Ben Foxall
@benfoxall.bsky.social
I love the web, data, spatial, robotics and hacks.
Prev, Robot Web at Wayve 🫶 🤖 🚗
Prev, Robot Web at Wayve 🫶 🤖 🚗
And it all packages up well. Now I've got a self-contained docker image (around 440mb) that I can deploy wherever I want.
November 7, 2025 at 2:18 PM
And it all packages up well. Now I've got a self-contained docker image (around 440mb) that I can deploy wherever I want.
There's something cool about making a local map server, this one is only really useful if you're in Dublin.
November 7, 2025 at 2:18 PM
There's something cool about making a local map server, this one is only really useful if you're in Dublin.
1. Download open streetmap data for the area you want to route through
2. Process/extract/partition your data into a bunch of osrm.* files
3. Run the server
github.com/Project-OSRM...
2. Process/extract/partition your data into a bunch of osrm.* files
3. Run the server
github.com/Project-OSRM...
GitHub - Project-OSRM/osrm-backend: Open Source Routing Machine - C++ backend
Open Source Routing Machine - C++ backend. Contribute to Project-OSRM/osrm-backend development by creating an account on GitHub.
github.com
November 7, 2025 at 2:18 PM
1. Download open streetmap data for the area you want to route through
2. Process/extract/partition your data into a bunch of osrm.* files
3. Run the server
github.com/Project-OSRM...
2. Process/extract/partition your data into a bunch of osrm.* files
3. Run the server
github.com/Project-OSRM...
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)
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
November 3, 2025 at 7:46 PM
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)
Dunno if you've seen trntxt.uk by Dan Pope? It's very very data optimised (most page loads are <2k single rt)
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.
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
November 3, 2025 at 3:34 PM
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.
I did some git-scraping for a few days, pulled everything into DuckDB and generated a csv file to pull into the frontend.
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.
October 8, 2025 at 12:10 PM
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...
This post is really good – rmondello.com/2025/01/02/m...
October 8, 2025 at 12:05 PM
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...
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 😎)
Is this a tool for letting people add their own feeds to your reader? (I added mine 😎)
October 5, 2025 at 11:16 AM
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 😎)
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.
July 14, 2025 at 1:15 PM
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.
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.
Driving this from the native <video> element is handy, here I can increase the playback speed through the native controls.
July 8, 2025 at 11:15 PM
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.
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.
Not sure what's going on with the bouncing in this corner, but overall it feels pretty nice.
July 7, 2025 at 3:11 PM
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.
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.
TIL `.requestVideoFrameCallback`, pretty neat for syncing other elements to video timestamps.
July 7, 2025 at 10:52 AM
Interpolated pose linked to <video> element playback.
TIL `.requestVideoFrameCallback`, pretty neat for syncing other elements to video timestamps.
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
Hacked together with html/threejs + vibes from gemini
July 5, 2025 at 3:06 PM
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
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 📊
July 4, 2025 at 12:41 PM
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...
Let's you rotate/crop/export a splat intuitively.
Published: superspl.at/view?id=919d...
July 4, 2025 at 10:36 AM
SuperSplat Editor is awesome.
Let's you rotate/crop/export a splat intuitively.
Published: superspl.at/view?id=919d...
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...
github.com/pierotofy/Op...
July 4, 2025 at 9:52 AM
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...
github.com/pierotofy/Op...
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
1. extracted the video frames at 2hz with ffmpeg
2. clicked stuff in the gui
colmap.github.io
July 3, 2025 at 4:18 PM
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
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/
djitelemetryoverlay.com/srt-viewer/
July 3, 2025 at 2:55 PM
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/
djitelemetryoverlay.com/srt-viewer/