The method
Shifting water cycles in Switzerland ask landscape designers to work with dynamic topography. Purely digital methods are precise but keep the designer at a distance; purely physical ones are intuitive but slow to repeat and hard to measure. Hybrid terrain modelling moves between the two in a closed loop, with Murmeli bridging the technical gaps.
The plug-in
Murmeli groups its components into four tabs: Import, Tools, Analysis and Export. It reads raw LiDAR without converting it to rasters or vectors first, and works with existing terrain tools such as Docofossor, Bison and BeingAliveTerrain. Written in Python 2 and 3, it runs in Rhino 7 and Rhino 8.
Geodata as a basis
swisstopo has recorded the country with LiDAR for 25 years. Since 2025, classified high-resolution point clouds cover all of Switzerland, one of the most precise national datasets in Europe. Using it in design software raises three problems, which Murmeli handles inside Grasshopper.
- Data structures. Translating between points, vectors, meshes and solids.
- Coordinates. Moving the Swiss reference system to a local origin.
- Volume. Handling large datasets through sampling and class filters at import.
| Dataset | Type | Format | Notes |
|---|
Before using open government data, check the swisstopo terms of use.
Precision by scale
PLA printers lay down layers of about 0.2 mm, and pressed sand keeps that detail. What 0.2 mm means on site depends on the model scale. Pick a scale to see what the model can show.
- Smallest detail on site
- — 0.2 mm print layer × scale
- Full-cycle error on site
- — ±0.1654 mm measured after print, cast and rescan
- One 25 × 25 cm tile covers
- — a common printer bed
- Against the source data
- — swissSURFACE3D vertical accuracy ±10 cm
In the paper, a 1:3'000 model carried through the full loop deviated by ±0.1654 mm, which is ±0.50 m on site. At 1:1'000 and larger, the error falls to ±0.2 m or less, close to the precision of the geodata itself.
In the studio
Formworks are printed in PLA, then pressed full of kinetic sand, clay or plaster. A new cast from an existing formwork takes five to ten minutes, so students can work in variants: different time scales, erosion processes, wet and dry years. The method ran in a graduate landscape architecture studio (spring 2025) and an undergraduate architecture studio (fall 2025) at ETH Zürich, where more than 300 students met topography and hydrology this way.
Work starts with large conceptual models, where even unscaled ideas can be sketched by hand. It then narrows to smaller scales and precise interventions, shaping the sand manually and deforming the terrain digitally before the next print.
Back to digital
To close the loop, shaped models are scanned and laid over the original terrain. Hand-held laser scanners (GOM, Artec Leo) and photogrammetry worked best; depth cameras lacked precision. The rescans then go through the same digital analyses as the geodata: slope, runoff and earthwork volumes.
Limits
The method sits between tangible sand tables, which are fast but coarse, and CNC milling, which is precise but slow. That balance has costs worth planning for.
Print size
The printer bed limits the model. Larger sites are split into tiles and combined into one formwork.
Print time
A first print can take 10 hours or more for 25 × 25 cm. The method pays off when one formwork serves many variants or a whole group.
Hand precision
Manual shaping has its own resolution. At large scales it suits concepts and exaggerated features rather than detail.
Materials
The studios used kinetic sand, clay and plaster. Site-specific material mixtures are a possible next step.
Topography had more impact on the design when it was physically present in the room. Moving between the digital and the analogue gave students a more multifaceted understanding than either alone.
Download & install
All files come straight from the GitHub repository. The installer is the quickest way in. Single components are listed in the library above, each with its own download. Murmeli works with Rhino 7, and with Rhino 8 using the IronPython plug-in. Reading .laz files needs Rhino 8 and the lasrz, laszip and laspy packages.
With the installer
- Download the installer file.
- Drag and drop it into Grasshopper.
- Set “Installation” and “Overwrite” to True.
- Restart Rhino.
By hand
- Download all files as ZIP and unpack it.
- In Grasshopper, open File › Special Folders › Components Folder and copy the .ghpy files from ComponentLibraries there.
- Open File › Special Folders › User Object Folder and copy the .ghuser files from UserObjects there.
- Restart Rhino.
Paper & citation
The method and plug-in are described in “Hybrid Terrain Modeling: A Multidimensional Landscape Design Method”, Journal of Digital Landscape Architecture 11, 2026, pages 403–410. Open access.
Credits
Murmeli was developed by Dennis Häusler, Nathan Loretan and Matthias Vollmer at the Chair of Landscape Architecture of Martina Voser and the LVML, Institute for Landscape and Urban Studies, ETH Zürich. AI assistance was used for Python scripting. Thanks to the teaching team, Coralie Berchtold, Bea Kisler, Nathan Lorethan, Dylan Torri and Martin Zwahlen, and to the students who tested the method in their projects.
The plug-in files and this website live in the same GitHub repository, released under the MIT license.
Contact: haeusler@arch.ethz.ch