{Mountains, Trees, Names}*
Home

{Mountains, Trees, Names}*

December 15, 2025WebsiteGithub

{Mountains, Trees, Names}* is a procedurally generated infinite landscape collectively created by participants of Find the Tree in Your Name during ITP Spring 2025. Inspired by Lingdong Huang’s {Shan, Shui}* and the Chinese painting A Thousand Li of Rivers and Mountains, the project explores infinite landscapes through zooming, panning interaction and collective authorship.

The landscape is generated using APack for stamps, Charming.js for trees, and D3.js for rendering and interaction.

Landscape{Mountains, Trees, Names}*

In ITP Winter Show 2025, Chloe and I printed out this landscape using Riso and put it on the wall, making the trees tangible!

LandscapeLandscape in ITP Winter Show 2025

Here is a video of interacting with the landscape:

Inspiration

I was amazed by Lingdong Huang's {Shan, Shui}* in the first place. Although there are tons of details in the painting, I was more interested in the overall composition and the way the mountains and rivers are connected. Also, I thought this kind of long-distance view is perfect for zooming and panning interaction.

In addition to this, I watched a musical theatre performance two or three years ago called A Tapestry of a Legendary Land, which is about the creation process of the Chinese painting A Thousand Li of Rivers and Mountains by Wang Ximeng. From then, I always wanted to create something with the beautiful yellow, blue and green colors in that painting.

PlayA Tapestry of a Legendary Land in Suzhou, China
Original ImageA Thousand Li of Rivers and Mountains from Wikipedia

In my Find the Tree in Your Name project, I collected a lot of trees from the participants, so I thought it would be interesting to visualize them in a landscape!

Process

Thanksgiving 2024, I explored this idea with triangles. The key idea is to implement a function triangle(x) that generates a triangle at the given position with uniform and noise random function. Then generate another one just beside it with some random offset. Repeat this process until fill the range [startX, endX].

TrianglesLandscape with Triangles

Half a year later, I added colors to it in Daniel Shiffman's the Nature of Code at ITP. I use SVG to render these triangles, so it's easy to add gradient color with radialGradient and stop elements.

ColorsLandscape with Colored Triangles

Thanksgiving 2025, I wanted to go a step further. So I "planted" the trees into the landscape with the stamps generated by APack. Also, I used midpoint displacement to replace triangles with more realistic mountains.

LandscapeLandscape with Trees, Names and Stamps

After that, my friend Chloe had just taken a class called Print and Code, and wanted to experiment with some techniques with a Riso printer. Then I thought why not print out the landscape and present it in ITP Winter Show 2025?

So we spent a whole night from 10pm to 6am printing out the landscape as 60 pages of A4 paper! The whole process was tiring but also fun. We got started with color picking. Because we didn't have too many colors, so we had to pick the colors that gave us the most vivid effect. Here were some experiments we did:

Color PickingColor Experiments

We ended with blue for the mountains, orange for the trees and green for the stamps.

Final ColorsFinal Colors

The biggest challenge here was that for each page we had to print 4 copies, because Riso always failed to print properly for the first copy and we also needed a backup. For each copy, we had to print 3 times: one for the mountains, one for the trees and one for the stamps. I was so proud that we finally made it! Here are some photos of the process by Sai.

Printing 1Printing 2
Printing 1Printing 2Printing 3

And then we put them on the wall! Thanks to Christoff for helping us record the process!

StickingSticking

And this is the final result!

Landscape

Reflection

I really like this project. While it is not technically complex, it offered a rich way to explore the intersection of generative art, data visualization, and physical printing. What fascinates me most is that those who plant the trees become part of the landscape itself—the creators are embedded in the creation. The stamps generated by APack serve as visible marks of authorship.

Thanks

Huge thanks to Chloe! I know nothing about Riso printing, but she taught me everything and helped me a lot. Also, thanks to Sai and Christoff for all the wonderful photos and videos!