Working codebase for Maze generation using THREE.js and Binary Tree Mazes. Basic concepts and experiments with motion and interaction - WIP repo use at your own risk.
For every cell in the grid, randomly carve a passage either north, or west. A side-effect of this algorithm is that it has a strong diagonal bias. Also, two of the four sides of the maze will be spanned by a single corridor.
The maze is represented by an 1d array. The array emulates a 2d grid with each cell being a wall or a floor. We can find out position in the maze with the formula columns + 1 + x * 2 + rows * 2 * y
.
Application start point --> index.js
--> (load render file) /BinaryCube/index.js
. You can see variations by pointing to the subfolders as there is no formal index rather a working repo of stuff.
Please have a current version of Node and Yarn installed. Open a terminal window and type the following commans.
$ yarn install
$ yarn dev
Then open a browser to http://localhost:2020
Three.js is imported and added into a global namespace which allows the use of their example and addon scrips like OrbitControls or shaders. If you wish to add or edit any of the Three's dependencies or controlls you should do it from the src\Three.js
file.
import * as THREE from 'three'; // build/three.js from node_module/three
window.THREE = THREE;
require('three/examples/js/controls/OrbitControls.js');
require('three/examples/js/shaders/FresnelShader');
// ...etc for other items like Render Passes and Shaders