Forest Rendering Project

Starting in April 2013 with an Undergraduate Research Grant, I started working on a landscape visualization platform to depict ecological change in forest environments. Over a decade through intermittent phases of software development, I have used this code base to produce animations, real-time simulations and interactive artworks. Original code developed through this work has been published and exhibited through various artworks, such as Evolutionary Forest.


This page is an overview of forest landscape rendering systems produced by Colton Hash. Projects since 2018 have been implemented with Unity to produce real-time applications that can run on a GTX 960 at 30fps.

Technical Overview Video (2019)

Project Innovations

  • Viewport Displacement Rendering – Novel combination of per-vertex and per-pixel displacement to render volumetric terrain and vegetation

  • Adaptive Data Textures – Interconnected Render Targets that simulate biological variables through cyclical updates

  • Dynamic Disturbance – Cellular Automata based wildfire and disease events occur based on vegetation, weather and soil conditions

  • Dynamic Tree Texture – Tillable sprite texture to render trees with variable density, life cycles and distinct tree species

  • Dynamic Tree Sprites – 2D Billboarded sprites that are in sync with the global tree texture

Rendering Approach

Rather than rendering individual trees as discrete entities, the Forest Rendering Project works from a removed perspective, considering vegation to be an interconnected organism. Through this approach, forests are rendered in a mesh that is displaced from base terrain geometry, and individual trees can still be distinguished.

Rather than using ray tracing, which requires complex calculations for each depth step, displacement is calculated in view space using a novel approach, Viewport Displacement Mapping (technical research conducted in 2017). Combined with multi-layer vertex displacement, this technique is effective for real-time applications and can run on relatively low powered computers.

This approach to render trees can be combined with traditional bill-boarded sprites and vector geometry, so that trees in the foreground can have vertical trunks that are synchronized with growth and decay of vegetation.

Input Data

Vegetation is rendered onto terrain based on input data textures, encoding information such as density, species, health, and burn for wildfire implementations. Depending on use for GIS data visualization or for procedural landscapes, the composition of this data can vary.

Using render targets to encode variables that are cyclically updated based on climate and landscape conditions, a virtual ecosystem can be created that dynamically adapts to change. This adaptive landscape system is an extension of the Forest Rendering Project, and is first used in Evolutionary Forest.

Adaptive Ecosystem Overview Video (2021)

Interactive Adaptive Ecosystem Demo (2018)

Art Projects developed from Forest Rendering Project