A Three.js-based JavaScript/WebGL framework for visualizing 3D geospatial data in web browsers.
iTowns is a JavaScript framework built on Three.js and WebGL for visualizing 3D geospatial data in web applications. It solves the problem of rendering complex geographic datasets—like terrain, buildings, and vector layers—interactively in browsers, connecting to standard mapping services and supporting multiple data formats.
Web developers and GIS professionals building interactive 3D mapping applications, such as urban planning tools, environmental monitoring dashboards, or virtual globe experiences.
Developers choose iTowns for its robust integration with Three.js, support for open geospatial standards, and ability to handle diverse data sources efficiently in a browser-native framework, backed by active maintenance from organizations like IGN.
A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports WMS/WMTS/TMS servers and formats like 3dTiles, GeoJSON, and Vector Tiles, enabling seamless connection to diverse geospatial data sources as highlighted in the README.
Built on Three.js and WebGL, it efficiently renders complex 3D terrain and buildings in modern browsers, with examples showcasing globe views and post-processing effects.
Organized as a monorepo with sub-modules like @itowns/geographic, allowing selective imports to optimize bundle size and functionality.
Backed by organizations like IGN and CIRIL Group, with regular updates, a governance model, and community contributions, ensuring long-term viability.
Requires familiarity with Three.js, WebGL, and geospatial concepts like coordinate systems, making it challenging for developers new to 3D GIS.
Officially targets only the last two major browser versions, excluding older systems, which can be a barrier for applications with diverse user bases.
Involves npm or Docker for local development, and handling multiple data formats adds initial overhead compared to simpler mapping libraries.