3D Render

General

Most of our feature handle these common tags:

Ground

Shading

Ground shading is done with a tile based process using Tilemill and Mapnik with svg and textures to add details upon OpenStreetMap data.

Elevations

The ground elevation is done in a distance adaptive way to get something more precise while zooming closer to the ground. Elevation data comes from DEM3 with a maximum precision of 90m.

Buildings

Buildings & building:part

We are based on OpenStreetMap simple 3D building specification

over that base:

"Special" buildings

We're using a proprietary modeled building database (check the Eiffel Tower) transfered as a binary form.

They can be disabled using the "F4 specific buildings" button in the graphic options window.

Roofs

Shape

We support simple roof shapes from roof:shape, building:roof:shape and building:shape tags:

   flat [default]
   pyramidal,
   pyramid,
   hipped,
   half-hipped,
   skillion,
   gabled,
   pitched,
   dome,
   onion,
   mansard,
   gambrel,
   round,
   sawtooth,
   saltbox (rendered as double_saltbox)
   double_saltbox
   triple_saltbox (rendered as quadruple_saltbox)
   quadruple_saltbox

We generate buildings with man_made=chimney or tower:type=cooling using an Hyperboloid shape.

We handle building:part=steps with roof:shape=skillion (if step:height is not specified we'll use 16cm).

Orientation

Roofs ridges are generated using a straight skeleton algorithm.

If roof:orientation=along/across we will use the optimal oriented bounding box (oBox) to find the ridge orientation.

Height

If roof height if not defined it will be generated:

Dome, Mansard, Gambrel and Round will use oBox minimal size to determine height.

Skillion will use 25% of building total height.

Others shape will use 4m.

Walls

Walls height is computed as height - roof:height.

If building=roof or wall=no walls won't be generated.

Colors

Colors are mapped upon this table

Hex colors are applied "as is".

When no colors are set, we're using a material to color table.

Materials

Reflect rate table:

   glass = 30%
   gold = 20%
   mirror = 99%

Walls will use building:facade:material, building:material or material tags.

Roofs will use roof:material or building:roof:material tags.

Urban details

Barrier

We generate wide polygons for barrier=wall|hedge and textured polygons for barrier=fence.

Smoke

If a building got a man_made=chimney or tower:type=cooling we ad a white smoke effect on top taking account of current wind direction and speed.

Sculpture

A Venus de Milo model is pushed on elements with monument=statue artwork_type|artwork:type=sculpture|statue. We handle height and min_height tags.

Street lamps

A specific model is added on highway=street_lamp points.

Wind generator

A specific animated model is added on power=generator and generator:source=wind points.

Petroleum well

A specific animated model is added on man_made=petroleum_well points.

Construction cranes

A specific animated model is added semi-randomly on landuse=construction polygons.

Power lines and poles

We handle power=line|minor_line with a black wireframe style with specific models for power=pole|tower points. The tag cables=(number) works on power=line.

Lighthouses

A specific model is added on man_made=lighthouse polygons and points. Height is taken from height tag or deduced from seamark tags.

Cemetery

We semi-randomly add graves on landuse=cemetery or amenity=grave_yard polygons.

Fountain

Animated particle generator is added on amenity=fountain polygons and points.

Flags

A specific animated flag model is added on golf=pin|hole (last point of lines, center of polygons or position of points) and man_made=flagpole.

Boats

A specific model is randomly added on lines with waterway=river|canal and boat:yes|designated|permissive or route=ferry.

Aerialways

A specific model is added on points with aerialway=pylon. Cables are renderered on lines with aerialway=cable_car|j-bar|t-bar|platter|drag_lift|gondola|chair_lift|mixed_lift. Animated gondolas are added along aerialway=cable_car|gondola|chair_lift.

Natural details

Water

The water effect is injected inside the ground texture tiles and its wave direction is global to the whole world.

Trees, Forests, Scrubs

Trees are inserted:

We handle deciduous, conifer and palm trees, they are taken semi-randomly according to the current latitude if not specified in osm tags.

Bush are inserted:

Vineyards

Polygons with landuse=vineyard are randomly filled with aligned hedges.

Stones

A specific model is added on natural=stone and megalith_type=true points, lines and polygons.

Weather

Clouds, rain, snow... are rendered using worldweatheronline API, we cache its response with a 1° precision for 2h.

Wind direction and speed is forwarded to the clouds dome and the chimney smoke effects.