Elias Hasle's personal Github page


Made using three.js and other Javascript. (Some pure WebGL will be published later.) All the 3D demos except "Tunnel" use THREE.OrbitControls for mouse/touch interaction. Some demos use dat.GUI.

Swarm experiments
Made during a Swarm Intelligence course in Ă…lesund
Ghost webcam
I recommend turning the audio volume down a bit before starting this, and turn it gradually up afterwards.
Cartoon webcam
A combination of Scharr filter, color transforms and temporal smoothing. Some settings behave unexpectedly (a bug).
Perfect spheres
Pixel-perfect spheres rendered by raycasting on view-space quads in the fragment shader. (Work in progress.)
Face-Centered Cubic grid
A dense stacking of spheres that can be formulated as a grid of cubic cells.
Bouncing spherical particles
In unidirectional gravity field. Spatial hashing, simple integration, not fully incompressible.
Masses on springs
Particles under influence of gravity, connected by springs that stretch and break. Simple integration, no collisions, custom PRNG.
Infinite tunnel
A very simple car driving simulator with procedurally generated graphics and optional gamepad control.
A photo of a viper projected onto a 3D plane and combined smoothly with a skyscraper. GUI controls for adjusting the geometry and lighting to match the photo.
Three-point perspective
The R,G,B lines lead to vanishing points for X,Y,Z, respectively.
Golf ball
Based on a "vertex-colored" (encoding barycentric coordinates) polyhedron with a custom shader.
Christmas ball
Or circus ball (for an elephant). Closely related to the above.
Map view controls
Application example of zoom-to-pixel controls for THREE.OrthographicCamera (separate repository).
STL/3DS viewer
A very simple viewer for locally stored .STL and .3DS models.

I have also contributed strongly to the vessel.js project.


Github profile:
Facebook profile:
Private email:
Username: elias.hasle, domain: gmail.com
Country code: +47 (Norway), number: 90 17 11 96