Let the room around you get covered with vines

Vendula Němcová


Overgrown is an experimental mobile application for augmented reality. It aims to explore and transform the space by covering nearby surfaces with growing plants.

The app uses Google ARCore to detect and approximate the surfaces in a room. After the space is scanned, the user can start planting seeds. Vines will start growing towards the camera, running accross the surfaces and along their edges. Sometimes a sprout outgrows the plane and then navigates back after a while.

The plants are generated by a non-deterministic timed L-system, which is a special type of grammar. The plant parts are assembled according to the derivation rules. The L-system is further extended by a couple of Unity scripts that control the growth direction.

In the future, other plant species could be easily added to the application by providing suitable 3D models and a set of derivation rules.



  • Unity game engine

  • Google ARCore + ARFoundation: a wrapper package for Unity

Code Snippet


You can download the APK and run it on an ARCore supported mobile device. One should be available in the HCI laboratory.

Author comment:

Unfortunately, the surface-detection capabilities of ARCore seem to be currently quite limited. The detection produces far too many guesses, polluting the scene with a bunch of overlapping surfaces. Some of them are fairly accurate and relevant, but a lot of them are too large and simplifying, too small and detailed, or even plain wrong.

It seems to help a little to remove disturbing objects from the scene and cover the surfaces with cloth of different colors.