1 - Sliding Puzzle: Sliding Puzzle
Key features:
- Easily configurable (either in default_data.js file or, preferably, in *.html file)
- Difficulty: from 2x2 to 10x10 puzzle
- Two-sided: numbers (front side) and images (back side)
- 22 different images: 21 of them are plain images (mostly landscapes) and are randomly sorted when the program starts; the remaining one is an interactive, animated image (the Earth model); it’s always the first one to show up
- Camera controls: both the puzzle camera (either by direct manipulation or through widgets) plus the Earth model camera (when selected, by three.js OrbitControls + Ctrl key); the puzzle camera projection is selectable (perspective or orthographic)
- Audio: randomly selected cheering whenever the player solves the puzzle
- Sprites (used as tips on the back side - image side - of the puzzle)
- Help and credits
2 - Thumb Raiser: Thumb Raiser (10 x 10)
Key features:
- Easily configurable (either in default_data.js file or, preferably, in *.html file)
- Difficulty: many different-shaped and -sized mazes (defined in JSON files)
- Cameras: up to five simultaneous (x2) different views: fixed-, first-person, third-person, top-view, and mini-map; controllable either by direct manipulation or through widgets); cameras projections are selectable (perspective or orthographic)
- Realistic view mode
- Viewport direct manipulation: draggable and resizable, with cursor changes
- Audio: randomly selected and configurable global and positional audio clips
- Two different collision detection algorithms: OBB (character) with AABBs (maze walls); and BC (bounding cylinder - character) with AABBs (maze walls); the former was implemented with three.js classes; the latter by measuring distances between the character and the maze walls
- Help and credits
Note: I’m thinking of creating a class that easily allows programmers to register and manipulate (drag and resize) viewports, but I haven’t had the time to do it yet
3 - Interactive world watch, a basic 2D project I created to learn three.js: Interactive Watch
Key features:
- Easily configurable
4 - An advanced version of the old Pong game, another basic 2D project I created to learn three.js: Pong
Key features:
- Easily configurable (either in default_data.js file or, preferably, in *.html file)
- Pads can move not only up and down, but forth and back as well
- Players can control the ball direction, speed, and spin
- The ball speed and spin decrease with time (friction)
- Whenever a player scores, his/her pad gets smaller but faster
- Whenever a player concedes, his/her pad gets bigger but slower
Check *.html files in Index of /~jpp/threeJS for more configurations.
A final note: Every project allows you to decide whether you want to set the device pixel ratio or not; setting it may produce sharper graphics (in case you have a HiDPI device), but it’s possible that the frame rate drops down. You can configure this option either in default_data.js files or, preferably, in *.html files.
Hope you enjoy.