# martini **Repository Path**: mirrors_mapbox/martini ## Basic Information - **Project Name**: martini - **Description**: A JavaScript library for real-time RTIN terrain mesh generation - **Primary Language**: Unknown - **License**: ISC - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-09 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MARTINI [![Simply Awesome](https://img.shields.io/badge/simply-awesome-brightgreen.svg)](https://github.com/mourner/projects) MARTINI stands for **Mapbox's Awesome Right-Triangulated Irregular Networks, Improved**. It's an experimental JavaScript library for **real-time terrain mesh generation** from height data. Given a (2k+1) × (2k+1) terrain grid, it generates a hierarchy of triangular meshes of varying level of detail in milliseconds. _A work in progress._ See the algorithm in action and read more about how it works in [this interactive Observable notebook](https://observablehq.com/@mourner/martin-real-time-rtin-terrain-mesh). Based on the paper ["Right-Triangulated Irregular Networks" by Will Evans et. al. (1997)](https://www.cs.ubc.ca/~will/papers/rtin.pdf). ![MARTINI terrain demo](martini.gif) ## Example ```js import Martini from '@mapbox/martini'; // set up mesh generator for a certain 2^k+1 grid size const martini = new Martini(257); // generate RTIN hierarchy from terrain data (an array of size^2 length) const tile = martini.createTile(terrain); // get a mesh (vertices and triangles indices) for a 10m error const mesh = tile.getMesh(10); ``` ## Install ```bash npm install @mapbox/martini ``` ### Ports to other languages - [pymartini](https://github.com/kylebarron/pymartini) (Python)