What does a contest-winning Splunk dashboard look like? In this case, it isn't in a browser tab at all. It hangs on my wall: a live air-traffic radar scope and an analogue clock, rotating on a circular display in my house, rendered entirely as a Splunk dashboard.
I'm delighted that this entry, AirspaceWatch, took first place in the 2026 Splunk Dashboard Contest, "From Data to Insight". This post covers where the idea came from, how it was built using the new custom visualisation framework in Splunk Dashboard Studio and the handful of gotchas that cost me evenings, so they don't have to cost you yours.
You can try a live demo for yourself right now.
Custom Viz Dashboard Video Demo
The Inspiration
Two things collided.
First, I'd already been developing a 7 inch circular display on the wall (driven by a single-board computer) as part of a different wall-clock project. It looked great but I felt it was underused.
Second, I'd been running an ADS-B receiver for a while, feeding live aircraft positions over Leeds into Splunk and contributing to community flight-tracking networks. For those unfamiliar with ADS-B: nearly every aircraft continuously broadcasts its position, altitude, heading and speed, and a cheap USB receiver picks all of it up. It makes a great free real-time dataset!
When the contest was announced I did a fair amount of head scratching to come up with ideas. I've seen similar competitions before and the pattern across their winners is consistent: an unusual domain, genuinely live data and a visual "hero" element that isn't just another chart. The judging criteria nailed it down further: technical complexity and originality were worth 30% each, so a safe entry built from out-of-the-box charts was never going to cut it. Custom visualisations and a physical form factor attack both at once.
A radar scope on a physical circular wall display, built from two custom visualisations, felt like a strong candidate.
AirspaceWatch is a Dashboard Studio dashboard designed for a circular screen. That one constraint drove every design decision:
Splunk is at the core of the whole thing: a modular input collecting the data, two custom visualisations rendering it and Dashboard Studio holding it together.
Both visualizations are built on the new custom visualisation framework for Dashboard Studio that arrived in Splunk Enterprise 10.4 and Splunk Cloud Platform 10.4.2604 (framework_type = studio_visualization). It's a big step forward from the classic SimpleXML-era framework: your visualisation is plain JavaScript running in a sandboxed iframe, talking to the dashboard through the Studio API, with its options declared in a config.json. No Backbone, no RequireJS and no mandatory build step, and you can bring any JS library you like (or none, as I did). One thing to note: you'll need Splunk 10.4+ to run these visualisations yourself.
AirSpace Watch TA (TA-airspace-watch) is a modular input built with the Universal Configuration Console (UCC) framework that polls a local tar1090/dump1090 receiver every 5 seconds and emits one Splunk event per aircraft, geofenced to 100 nautical miles around my location in Leeds, UK, as sourcetype airspace:adsb. Each event carries hex, callsign, lat, lon, altitude_ft, heading, speed_kts and friends.
The radar panel then needs just one honest piece of SPL: the latest position per airframe over the last two minutes, refreshed every 10 seconds.
`index_adsb` sourcetype=airspace:adsb earliest=-2min latest=now
| stats latest(lat) as lat latest(lon) as lon latest(altitude_ft) as altitude_ft
latest(heading) as heading latest(speed_kts) as speed_kts
latest(callsign) as callsign by hex
| where isnotnull(lat) AND isnotnull(lon)
Raw flight data
One row per aircraft. That's the entire dataset for the radar.
Custom Viz - Airspace Radar (viz-airspace-radar) is a custom Dashboard Studio visualisation (Canvas 2D, no dependencies) that renders those rows as a proper phosphor radar scope: a rotating sweep (6 seconds per revolution, configurable in the viz options), range rings, a centre cross-hair, heading vectors and callsign plus altitude labels on every contact. I centred it on Leeds Bradford Airport with a 100 nautical mile range.
Custom Radar Viz for Dashboard Studio
The important design decision: the animation belongs to the visualisation, not the search. Splunk delivers fresh positions every 10 seconds; the sweep, the glow and the motion run client-side at 60 fps. You get something that feels live without hammering the search tier, and the search itself is pretty lean (although I will probably look at leveraging tstats for some performance gains).
Custom Viz - Realtime Clock (viz-realtime-clock) sounds like the trivial half. It wasn't.
The analogue face has a smooth-sweep second hand driven by requestAnimationFrame with sub-second interpolation, canvas scaling and configurable everything (face, hands, ticks, glow).
The subtle bit is time itself. The seed search is just | makeresults | eval _time=now(), and the viz uses Splunk's _time to compute a skew offset against the client's Date.now(). The dial then runs off the corrected time. If the device driving the display has a drifting clock (small single-board computers are terrible for this), the wall clock still shows the indexer's truth. A clock that lies is worse than no clock.
In the order they hurt:
Credit where due: Robert Castley's open-source custom visualisation scaffold was the starting point for the viz structure, and Splunk's contest guidance pointed straight at it. The community sharing this material is why entries like mine can exist.
The winning combination relied on mapping the submission carefully against the scoring criteria:
If you're entering next year, read the criteria first and build backwards from the weights. Half the marks are technical depth and originality; spend your time there.
Everything in this post is open source and free to install, and both visualisations work with any data you can shape into their inputs:
👉 Download Custom Viz - Airspace Radar on Splunkbase
👉 Download Custom Viz - Realtime Clock on Splunkbase
👉 Download the AirSpace Watch TA on Splunkbase
👉 Explore the live demos or dig into the source on GitHub
And since the prize for the top three was a .conf26 pass: if you're in Denver, come and say hello. I'll be the one explaining why there's a radar scope in my kitchen! Or better yet, join me at these sessions:
Want updates like this sent straight to you? Learn how to subscribe to this blog (and follow Labels you care about) in our quick guide.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.