dump1090 3D Viewer


I made a 3D viewer.

Setting method

Because I am not good at English, I am Japanese.
Excuse me.
I’d like you to try it.


looks good.

Maybe I’ll try it on my rasp3 at home.

I wish it gave height and speed of each plane. right now it looks like tail number and country of origin.



Works great!

Needed just 5 minutes to install it. (I love Google Translator. :slight_smile: )

Thanks a lot !!!


hmmm, i must be missing something because if i run it on the FA image (based on jessie-lite?) it is incredibly slow so i installed enginx in case it was lighttpd and it was slow there too .

i must be missing something it needs to use.

edit: it appears nginx wasnt running, copy and paste error, i shall investigate more tomorrow.


Hands down, one of the coolest additions I’ve seen to date! Works well with -FA image, still fighting with a mutability setup as some of the path’s are different, especially the ‘GET’ path and webserver config…tracing out others still.

Very well done shogooda!!

I’ll paste back if I can ever figure out how to get it to populate the json on mutability builds - got map up fine, but I’m still missing something simple :frowning:


My radarcape does this (well it finally works with the latest update). It feeds google earth.
Pretty cool to see realtime 3D traffic.


i have try it in my raspberry and work fine.
Thanke very much for this excellent work.

But how we put more information in aircraft?
For example aircraft type, or FL, Altitude, etc.

Only we see Callsign or Registration and Country.



Grr getting so frustrated with this forum not allowing code to be pasted in code tags <refuses to show webpage then need to retype everything again!>

Anyhow, my third go around trying to get my question across using pseudo code this time.

In short, still trying to get aircraft to populate when laying on top of an installation from Joe’s script https://www.adsbreceiver.net/ - (FA or mutability doesn’t matter, but will be speaking in terms of a mutability setup for sake of clarity)

To keep things simple, downloaded the zip, unzipped and copied to /var/www/html/3d
This seems to be the simplest method of adding without requiring changes to the existing lighttpd conf files. The map loads up fine using http:/<IP_ADDRESS>/3d/ with no other changes.

On a mutability setup, the aircraft.json lives in /run/dump1090-mutability/aircraft.json, so I symlinked aircraft.json > /var/www/html/data to eliminate alteration to line 53 of the /3d/js/script.js file. (path ends up correct as script uses . ./data/aircraft.json). However, aircraft still aren’t parsing out, so I’m not sure if it’s a permissions issue or something else.

Again, I’m trying to create a simple method to add this nifty addition for those who use Joe’s scripts with minimal changes to existing files. Are there any other path’s I need to be aware of that could be holding the aircraft parse up?

The instructions provided work perfectly on the pre-canned FA image, so for anyone using that, erase everything I just typed from your mind, this wont apply to you.

What am I missing?


I just hit this myself, FWIW. Just hit back on your browser, your post should still be there (it is on Chrome/Chromium at least). I’ve asked ops to relax the mod_security rules that are causing the problem but (in their words) “mod_security is basically a pile of super-elaborate regexes against the request headers and body” so it may take some time.


I get back my lost post by back button on Firefox and Android Phone’s built-in browser. I did not try Chrome.

Since the time it started happening with me, I copy-paste my post in a text editor and save it, before hitting “submit” button on forum page. If it says “you dont have permission to post”, I try again after a while, copy-pasting from the saved text file.


When it happened to me umteen times before, I was able to hit the back button and text was still there, but not last night :cry:

I assume a quick and dirty could be a bypass for the \

 tag handler, but I imagine it's still a SecRule nightmare.  Glad I don't run the place!

@abcd567 - Going to make copying off to txt before hitting preview or submit SOP from now on - have done in the past, but not last night..only clumps of hair wedged in the keyboard.

Anyhow, back to my little problem - I can't help but think I'm bumping up against some sort of permission issue when trying to 'GET' /run/dump1090-mutability/aircraft.json directly or via symlink.  Perhaps it's as simple as setting ENV in one of the enabled lightpd.conf extensions - that said, I'm not a .js guy and only have experience with Apache so far as webservers go, but they all work pretty much the same afaik.  Funny how the little things gnaw at a person...


Simple test would be to see whether you can fetch the json file by hand.


i still have a problem with it running at near 0 FPS and the aircraft flash on and off, if i shut down lighttpd the 3d view on nginx goes upto 50 60 FPS but now the aircraft aren’t updating.

So i have disabled nginx as it suffers the same as lighttpd so i don’t think lighttpd is the problem

Cant help but think i have missed something, but i cant see what it is.

It almost like the 3d script isn’t being allowed access to the aircraft.json often enough so it slows. currently getting around 600 msg/s through the FA software if that makes any difference.

edit:web page says 1200 msg/s


…Bit by the firewall once again. ModSecurity is now officially on my #^$# list

json pulls up perfectly fine as default Pi user using cat, both directly and thru the symlink. Dare I try to paste the actual cmds used.

If I modify the js to point to the incorrect json path, I only see “stars” when pulling up the site with refreshed cache (shift-refresh) after restarting lighttpd for good measure - bing overlay wont come up due to error I’m assuming (same happens when no API key is attached). So I can only assume it’s finding the json with the correct path, but no clue what’s going on from there.

EDIT: is the aircraft.json identical in format between the pre-canned FA image and manual builds of FA/mutability? If not, that would explain things.

@theresjam - RE fps, I see ~35fps when fully operational from FA’s image (100+ aircraft). Still shows 40fps on mutability, albeit no aircraft *yet. I’m a bit confused why both nginx and lighttpd are in play?


I meant via wget or similar

wget -O - localhost/data/aircraft.json
(or whatever the URL is)

That would rule out any webserver issues.

EDIT: is the aircraft.json identical in format between the pre-canned FA image and manual builds of FA/mutability? If not, that would explain things.

Similar, maybe not identical, IIRC there are some new fields in -fa that are not yet in -mutability


ERROR 403: Forbidden << localhost request

I didn’t think of that :blush:

Ok, now I have a lead to work from (I think) Not sure how to fix yet.


# Block all access to the data directory accept for local requests.
$HTTP"remoteip"] !~ "" {
    $HTTP"url"] =~ "^/data/" {
        url.access-deny = ( "" )


# Allows access to the static files that provide the dump1090 map view,
# and also to the dynamically-generated json parts that contain aircraft
# data and are periodically written by the dump1090 daemon.

url.redirect += (
  "^/dump1090/$" => "/dump1090/gmap.html"

alias.url += (
  "/dump1090/data/" => "/run/dump1090-mutability/",
  "/dump1090/" => "/usr/share/dump1090-mutability/html/"

# The stat cache must be disabled, as aircraft.json changes
# frequently and lighttpd's stat cache often ends up with the
# wrong content length.
server.stat-cache-engine    = "disable"

Did I mention I suck with lighttpd?

EDIT: changing the ‘GET’ to >> url: ‘/dump1090/data/aircraft.json’, populates, but it blows up the browser in the process - planes populate, bing overlay doesn’t. Perhaps what @theresjam noticed - although it appeared to work fine for me on the stock image. Close, but no cigar.

EDIT#2: went back to default image - retested, sure enough, when there are a large amount of planes, it kills the fps unless zooming in heavily. Package addon builds also work, using the addition I wrote in my first edit - using the original instruction set for install works with the above addition, provided one changes paths if using mutability. My initial test with the stock image must not have been with as many aircraft, so I was mistaken before.


It is pretty neat. I’ve been feeding my data into WorldWind



For those following along - regarding updates, tweaks and heavy load - appears our man shogooda is updating his site with information to help with the issues so it may be a good idea to check back to his site for more information.


@Nitr0 i only installed nginx as further up the page of instructions shogooda had installed nginx so i thought maybe that was the issue.

As for ‘blowing up the browser’ the browser becomes massively laggy even on other tabs, so i agree i may be seeing what your see when its busier

edit: of to try shogooda’s suggestions

Comment: about the data source address, default works on the dump1090-fa

There are possibilities of heavy operation in environments where many airplanes are received.
Provisional response
Line 443

*/new ol.layer.Vector({
source: vectorSource3,
updateWhileAnimating: true,
updateWhileInteracting: true
new ol.layer.Vector({
source: vectorSource4,
updateWhileAnimating: true,
updateWhileInteracting: true

Please enclose it with ‘/’ and '/’.
You can disable the display of the trajectory.*

doesn’t seem to have helped much with 123 aircraft. I am looking forward to getting this working, so keep up the good work shogooda.


Yessir, seen his nginx install just above -finally. I don’t think it would make a difference since it’s (script.js) mowing through a lot of iterations - which increases with each aircraft. Even with removing the 3rd & 4th overlays (plot updates?), it doesn’t help much. :angry:

Yeah I’m pretty sure we’re seeing the same thing. I was mistaken early on, as I did originally install it at night and there was no way I would have had that many aircraft near that time.

Perhaps through this extra feedback, shogooda will find a way to trim some overhead so it survives high traffic areas better. At either rate, it’s still really cool - it works great for me late at night when things die down and it’s sort of mesmerizing :smiley: