Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.
/ aframe-bus Public archive

🚌Experiment to make a city "paper" bus in XR form


Notifications You must be signed in to change notification settings


Repository files navigation


This experiment originally started to make a city "paper" bus in XR form inspired by #Codevember 2018. It eventually morphed into a more complicated project.

Quick demo

Fire! Particles and lights!

Links to Codevember 2018 static pages

Running bus tracker broadcaster app in exokit:

Tested on Windows 10 PC with HTC Vive and Trackers. It's recommended that you run SteamVR Room Setup and set the play zone to match exactly the dimensions of your projector screen area. 0) Clone this repo

  1. Open a command shell in this repo's /server directory and run: npm run forever (after running npm install once)
  2. Navigate back to this repo's root directory and run: http-server (install with npm install -g http-server first if you don't have already)
  3. Note the IP address when you run the above, use this to update the url value on the broadcast component on the a-scene entity. Use port 12000, so your attribute will look something like: broadcast="url:"
  4. Open another command shell in your exokit directory (after building exokit from repo HASH value e5d38a6ca5f2c5cc03f79e0b5ec8d0fcad6c142a) then run: node . -x webvr http://localhost:8080/bus-broadcast.html
  5. On another machine attached to a projector pointed at the floor, use the IP address noted in (1) and open [localip]:8080/bus-broadcast.html in any browser. Open the console and run makeProjector(); Do not enter VR mode, instead use browser Fullscreen to stretch 3d view to full edges. Use the mouse to click, drag and "double drag" (using middle mouse button or two fingers touchpad) to adjust the projector's camera position while using the VR headset and tracked object to manually calibrate the projector.

About the Bus

1:43 scale NYC MTA Bus Toy:

In Real Life: Orion Model VII Next Generation (search "Orion VII Next Generation" for pictures)

Length 40' 10.5" = 12.459m Width: 102" = 2.59 m Height: 118.5” = 3.0099m (not including HVAC or battery, otherwise 132” or 335.28m for full HEV )

"Paper" Model Bus Dimensions

168 - height in px of front from bumper to roof 186 - height in px of right from bottom of wheels to roof ratio = 168 / 186 = 0.903225806451613 height of front in m = 3.0099 * 0.903225806 = 2.7186 and move up 0.2913m


Besides my code, art and models, I attempted to source everything in the repo from creative commons, MIT, apache, etc licensed material. Credits and notes below:





“Paper bus” source texture

LED signs:

FONT for custom signs:

Top down cars and trucks both:|&mediapopup=96963891 Bus only:|&mediapopup=64825323

A-Frame clock component:

number placement:


sky: sky2:

ocean: sky for environment map: water normals:

lens flares:

building ideas:

bus stop: Jeremy Eyring roadway: tram: sidewalk:

additional road texture options:

More Inspiration: fast train

Caltrain paper bus:


🚌Experiment to make a city "paper" bus in XR form







No releases published


No packages published