Elijah Tabachnik Open to ML & robotics roles · 2026 Resume

← Portfolio · P-04

Graphics · Procedural Systems

A procedural terrain + foliage generator for strategy-scale scenes.

A Unity tool that shapes natural terrain from layered Perlin noise, places biome-aware foliage, and keeps 15,000+ objects rendering smoothly with LOD.

Role
Personal project
Stack
Unity, C#, Perlin noise, LOD optimization
Artifacts
Code ↗
Generated terrain with dense clustered forests, grass, and sand bands stretching to the horizon
Fig. 1 Generated map — clustered forests, grass, and elevation-banded sand. Code ↗
01 / Live Demo

The generator, reimplemented live.

The original tool is a Unity/C# project. This is the same pipeline — layered noise, elevation-threshold biomes, clustered foliage — reimplemented in JavaScript with three.js, running in your browser right now.

Fig. 2 Live three.js reimplementation — layered noise, biome thresholds, instanced foliage. Original (Unity) ↗
02 / How It Works

Procedural generation tuned for strategy-scale scenes.

Layered Perlin noise controls terrain shape, then biome and elevation logic drives foliage placement so the map feels coherent instead of randomly cluttered.

Height maps

Layered Perlin noise drives the terrain profile and creates controllable variation across the map.

Forest clustering

A secondary noise layer controls tree grouping so forests appear intentional rather than uniformly scattered.

Terrain texturing

Water, grass, and mountain zones are derived from elevation thresholds for cleaner environmental transitions.

Scale & LOD

Unity LOD optimization keeps the scene responsive even with 15,000+ foliage objects in play.

The system centers on a modular ObjectGenerator script that overlays a secondary noise map over the terrain's height map. That structure makes it easy to tune terrain scale, forest density, chunk size, and foliage type without rewriting the generator each time.

03 / Original Output

Output from the Unity generator.

The live demo above is a browser port; these are renders from the original Unity tool itself, captured in the editor and in play mode.

Unity editor scene view of an early generation pass with grass, sand patches, and forest clusters filling in
Fig. 3.1 Generation pass in the Unity editor — height map applied, forests filling in.
Ground-level Unity view inside a dense generated forest with tree canopies filling the frame
Fig. 3.2 Ground level inside a generated forest — clustering keeps canopies dense.
Unity scene view across the full generated map showing forest clusters and sand bands over rolling terrain
Fig. 3.3 Across the full map — forest clusters and sand bands from elevation thresholds.
Low-angle render over the generated map with grass, clustered trees, and exposed sand to the horizon
Fig. 3.4 Low-angle pass over the generated map — grass, clustered trees, exposed sand.
04 / Artifacts

Read the source material.