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.
