Add the ground to your digital twin
You already model the building. ATLAS-3D models the site it stands on — terrain, flood exposure, solar yield, air quality, street network, climate trend — from public open data, in about a minute, with no BIM file, no sensors and no API key.
Free to integrate · no account · no key · schema atlas3d.site-context/1
Where the line sits
This is deliberately not a facility management platform. It stops at the property boundary, which is precisely where most facility platforms begin.
Your platform owns
Assets and their condition. Maintenance and work orders. BIM geometry, floors and rooms. Occupancy, utility metering, OEE, building carbon. Everything inside the envelope, and everything you have onboarded.
ATLAS-3D owns
Everything outside it, for anywhere on Earth, without onboarding: terrain and low-lying ground, rooftop solar potential, ambient air quality, the surrounding street and building fabric, live weather and the 1980-present climate record for that exact spot.
Typical uses: a site-context tab beside an asset record; screening a candidate site before anyone is sent to survey it; a solar or flood pre-assessment across a portfolio; giving an operator with a wide geographic footprint — a port, a rail network, a ministry estate — a view of the land between their buildings.
Nothing to procure. There is no key to issue, no contract to sign and no per-seat cost for any of the three integration routes below. If a route you need is missing, ask.
1. Deep link
The lowest-effort integration: link from an asset record straight to its surroundings. Every parameter is optional.
https://www.ai4nation.com/?lat=45.5489&lon=13.7302&r=400&t=14&build=1
| Param | Meaning | Default |
|---|---|---|
lat, lon | Centre of the capture zone, decimal degrees | — |
r | Capture radius in metres, 150–650 | 350 |
t | Time of day, 0–24, for the lighting model | 17.5 |
build | 1 builds the 3D zone immediately on load | off |
embed | 1 strips the console for an iframe | off |
A deep link with lat/lon skips the marketing intro automatically.
The app also accepts its own permalink form, #loc=lat,lon,radius,hour, which is what
the in-app Share link button produces.
2. Embed
embed=1 drops the marketing intro and slims the console so the view sits
comfortably beside your own UI. Attribution stays visible — that is an ODbL licence condition,
not a branding choice.
<iframe
src="https://www.ai4nation.com/?lat=45.5489&lon=13.7302&r=400&build=1&embed=1"
width="100%" height="520" style="border:0;border-radius:10px"
loading="lazy" title="Site context — Port of Koper"></iframe>
Live, right here
This is the real application, embedded on this page, building the district around the Port of Koper. Give it a moment — it is reconstructing from open data as you watch.
3. postMessage channel
Drive the embed from your page, and listen for what it finds. Commands carry
source:'atlas3d-host'; events come back with source:'atlas3d'.
Commands you send
const frame = document.querySelector('iframe').contentWindow;
frame.postMessage({source:'atlas3d-host', type:'build',
lat:45.5489, lon:13.7302, radius:400}, '*');
frame.postMessage({source:'atlas3d-host', type:'time', hour:21.5}, '*');
frame.postMessage({source:'atlas3d-host', type:'view', mode:'viewOrbit'}, '*');
frame.postMessage({source:'atlas3d-host', type:'context'}, '*');
frame.postMessage({source:'atlas3d-host', type:'reset'}, '*');
Events you receive
addEventListener('message', e => {
if (!e.data || e.data.source !== 'atlas3d') return;
switch (e.data.type) {
case 'ready': /* the app booted */ break;
case 'built': handleSiteContext(e.data.context); break;
case 'enriched': handleSiteContext(e.data.context); break;
case 'context': handleSiteContext(e.data.context); break;
case 'error': console.warn('atlas3d:', e.data.message); break;
}
});
built fires on its own as soon as a zone finishes, carrying the same payload the
context command returns — so a host page usually needs no polling at all.
Terrain comes from a slower elevation service, so flood is still
null at built time. A second enriched event follows with
the completed payload once that lands. Treat enriched as the authoritative
one; built exists so you can render something immediately.
4. Site Context JSON
The machine-readable handoff, downloadable in-app from Context JSON and identical to
the postMessage payload. Every value carries its unit, every score its formula, and anything not
measured is null rather than a guess.
{
"schema": "atlas3d.site-context/1",
"generated": "2026-08-12T09:14:02.118Z",
"location": {
"lat": 45.5489, "lon": 13.7302, "radius_m": 400,
"place": "Port of Koper",
"bbox": { "south": 45.545, "west": 13.725, "north": 45.553, "east": 13.735 }
},
"permalink": "https://www.ai4nation.com/#loc=45.54890,13.73020,400,17.5",
"built": {
"buildings_real": 312, "buildings_synthetic": 0,
"tallest_m": 44, "road_network_km": 18.4,
"osm_height_coverage_pct": 61
},
"environment": {
"pm25_ug_m3": 12.4, "pm25_source": "OpenWeather live",
"terrain_min_m": 1, "terrain_max_m": 27,
"solar_roof_kwp": 8140,
"green_cover_m2": 128400, "greenable_ground_m2": 61200
},
"scores": {
"flood": { "value": 38, "label": "Flood exposure", "band": "fair",
"higher_is_better": false,
"formula": "% of terrain within 1.5 m of the zone's lowest point" }
},
"sources": ["OpenStreetMap contributors (ODbL)", "Esri World Imagery", "…"],
"disclaimer": "Indicative estimates derived from public open data. …"
}
Scores are 0–100 with a stated direction, so you can drop them straight into an existing
dashboard without re-deriving anything. The schema field is versioned: additive
changes keep /1, and anything breaking becomes /2.
What you must pass on to your users
These outputs are indicative estimates from public open data — not a survey, valuation, engineering assessment or flood-risk assessment. Building heights are inferred (from OSM tags, LiDAR where available, satellite shadow length, or typology) and each one is labelled with its provenance. Layers marked simulated are generated where no open data exists and must never be used for excavation or utility location.
If you surface this data in your product, carry the disclaimer and the source attribution with it. Full detail: Accuracy and Attribution.
Something missing?
If your platform needs a format this does not speak yet — IFC, WFS, a server-side endpoint, a bulk portfolio run across many sites, or an on-premise deployment for data that cannot leave your network — say so. Those are all tractable, and a real integration need is the best possible reason to build one.
Contact: [CONTACT EMAIL]