Logo - Back to my site

Ramon Pinho's Elevator

Theme:

Elevator Babylon version

Welcome to my Babylon version elevator!
This is my first Babylon app and the second version of the elevator written with javascript and using a 3D model with the Babylon.js component!
If you are curious, check out the CSS Animated version too!
About the 3D model: The concrete block is the building; The small yellow cube is the elevator.  The blue 'lines' for each floor boundary.

Floors panel
Elevator panel
TODO list:
  • Add gamepad support.
  • Add keyboard shortcuts.
  • Add sounds.
  • Add sky.
  • Add new ground.
  • Add sun shadow.
  • Add full screen mode
  • Rotate the sun!
  • Fix the maxSimultaneousLights issue...
  • Implement two buttons per floor (up and down)
  • Increase the number of buildings that can be added.
  • Increase the number of elevators that can be added.
  • Allow to change each elevator settings independently.
  • [Learn how to] When selecting the building from the list, center its mesh on 3D.
  • [Learn] Understand and fix why collisions is not working properly (as excpected).
  • [Learn] and implement how to control camera and zoom limitations.
  • Add people to call the elevator.
  • Implement strategies which elevator will go for a call.
  • Add option to turn on and off the elevator light.
  • Change how the simulator changes states. Change to use one single SetInterval in simulator instead of multiple window events for each elevator.
  • Extends this app to Queue Simulation with the elevators [Queuing theory]
  • Translate all this to Portuguese.
Done list:
  • Created the floor panel, where simulates the button pressed on each floor.
  • [Learned how to] Implement light and shadow (just the basics for now).
  • Implemented option to add elevator and remove elevator.
  • Implemented door animation.
  • Highlighting selected elevator.
  • A lot of refactoring.
  • Implemented collapsable.js component.
  • Implemented utils.js
  • Improvements on helper.js component.
  • Improvements on styleManager component.
  • Implemented the babylon.js code related.
  • Implemented the controller and the simulator controller for the elevator.
  • Implemented the base model for the elevator.
  • Babylon Tutorial (many chapters)
  • WebGL Tutorial
Known bugs:
  • The engine crashes if I raise too much the number of maxSimultaneousLights in all my materials... So if you add 4 buildings with 4 elevators each, you'll notice that some of the elevator's light will be off...
  • I'll probably have to create a separated material for each elevator and building so I can apply only their own lights to themselves.
  • Zooming with mouse wheel is within canvas is causing the page to scroll...
Fixed bugs:
  • Sometimes when pressing the button to go to a floor lets the elevator model inconsistent and it stops moving.