Mosaic3D

The majority of the animation was created using Unity3D.

Basic mosaic with 3D Cubes/rectangular prisms. Simple animations (explosion, gravity drop)

Hosted on github:

https://github.com/alex-ong/mosaic-3d

Link to play animations: Mosaic-3D WebGL (currently broken, rip Github Pages changing to .io)

Brief Implementation/Description:

  • Wrote a quick script to download 14000~ images off google image search.

  • Wrote a python script to pre-cache/pre-calculate average RGB Values for 14000 items.

  • On Startup, the program loads the pre-cached colour data. This is all done in the background with IEnumerator

    • Loading the giant text file and splitting it into lines took 81 seconds originally using String.SplitLines. I wrote my own version using a string builder, which only takes 2 seconds to execute!

    • Since i had my own implementation of string.split, i could run it over time. Originally the program just froze for 81 seconds, since you can't split up the work of String.SplitLines using IEnumerator and WEBGL doesn't support threads

  • When clicking an object, the image is split into a grid. For each segment of the grid, the pixels are averaged to find an average colour. Then the precached data is searched for matching images.

  • After matching images are calculated, they are all seamlessly loaded in the background, again using IEnumerator

  • Various animations occur when selecting a new image. An explosion and a simple gravity fall are the only ones I got around to implementing, but I have written the code cleanly so i can easily add different types of physics based animations