Start of the week was spent in planning mode - creating flight plans for some scans of Marshgate with the BLK2FLY and DJI M4E plus getting the timeline sorted for ESB module next term. The end of the week included a visit to Thirst exhibition at the Wellcome Collection exploring water and our relationship with it. In between we set-up a bus tracker for the Student Union using Traccar and an off the shelf GPS tracker, and downloaded the photos from the Nature Smart Garden to create a timelapse for 2025.
The trip to Thirst was to explore the content (which was really interesting!) but to also look at how the exhibition was designed and put together. The exhibition uses a combination of objects, interactive displays, audio-visual content and immersive environments to engage visitors - useful prep for our CE exhibition. They say:
“From ancient Mesopotamia and Victorian London to modern-day Nepal and Singapore, the exhibition highlights the vital role of freshwater in shaping health and ecosystems; the consequences of mismanagement, like the spread of infectious disease; and community-led solutions to the global water crisis.”
Thirst at Wellcome Collection - more images on Flickr.
Work on the SU bus tracker progressed well. Working with Steve managed to get the Traccar server up and running on a portainer on one of our servers, and then configured the GPS tracker to send data to it. Most of the headache was configuring the cellular device and managing ports to get messages through the network. But now we have JSON packets flowing through our MQTT broker which means we can start to explore was to visualise that information. Steve has a web app in progress but the open data also leaves the door open for students to create other ways of seeing the data.
Traccar website showing admin side of tracker.
Early prototype of bus tracker web app.
The JSON for the bus location is available via MQTT at mqtt.cetools.org on topic /UCL/OPS/Bus and has the following payload format:
{
"position":
{
"id":0,
"attributes":
{
"ignition":false,
"status":4294966271,
"io1":"234",
"io2":"10",
"io3":"4112",
"io4":"134255229",
"io5":"100",
"distance":0.0,
"totalDistance":11611.549756931034,
"motion":false
},
"deviceId":1,
"protocol":"h02",
"serverTime":"2025-11-19T17:50:04.410+00:00",
"deviceTime":"2025-11-19T17:50:02.000+00:00",
"fixTime":"2025-11-19T17:50:02.000+00:00",
"valid":false,
"latitude":51.538595,
"longitude":-0.010236666666666666,
"altitude":0.0,
"speed":0.0,
"course":0.0,
"address":null,
"accuracy":0.0,
"network":null,
"geofenceIds":null
},
"device":
{
"id":1,
"attributes":{},
"groupId":0,
"calendarId":0,
"name":"ST-915-SU-Bus",
"uniqueId":"7026070782",
"status":"online",
"lastUpdate":"2025-11-19T17:50:04.412+00:00",
"positionId":44,
"phone":null,
"model":null,
"contact":null,
"category":"bus",
"disabled":false,
"expirationTime":null
}
}
Finally, I downloaded the daily images from the Nature Smart Garden project to create a timelapse of the garden over 2025. Using FFmpeg I stitched together the images into a video file which you can see below. This is the short 5 sec version of the 23Gb of images collected. Notes on ffmpeg are at bottom of post for future reference.
Timelapse from May to September 2025.
Looking at links.duncanwilson.com I also spent time on:
- reading about Arduino T&C’s
- risks of AI transcriptions
- uploaded a video of our LLM for timeseries analysis project Trust2
- real time sewage maps by colleagues at UCL: Sewage Map
Doesn’t look like particularly pleasant water out there at the moment.
Notes:
During light hours
find 2025* -type f -name "*.jpg" | sort | grep -E 'frame_(09|1[0-4])[0-9]{4}\.jpg' | awk '
{
print "file \047" $0 "\047";
print "duration 0.033333333";
}
END {
print "";
}' | sed '$d' > daylight_input_files.txt
ffmpeg -f concat -safe 0 -i daylight_input_files.txt -c:v libx264 -pix_fmt yuv420p -crf 23 -vf scale=1280:-2 hd_web_timelapse.mp4
One per day
find 2025* -type f -name "*.jpg" | sort | grep -E 'frame_1400[0-9]{2}\.jpg' | awk -F'/' '
{
if (!seen[$1]++) {
print "file \047" $0 "\047";
print "duration 0.033333333";
}
}
END {
print "";
}' | sed '$d' > daily_1400_files.txt
ffmpeg -f concat -safe 0 -i daily_1400_files.txt -c:v libx264 -pix_fmt yuv420p -crf 23 -vf scale=1280:-2 hd_web_timelapse_daily.mp4

