martini

by mapbox

mapbox /martini

A JavaScript library for real-time RTIN terrain mesh generation

467 Stars 22 Forks Last release: 8 months ago (v0.2.0) ISC License 17 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

MARTINI

Build Status Simply Awesome

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.

Based on the paper "Right-Triangulated Irregular Networks" by Will Evans et. al. (1997).

MARTINI terrain demo

Example

// 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

npm install @mapbox/martini

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.