Yes, it’s possible to render vector tiles directly inside a Three.js scene, but most implementations require converting vector tile data into meshes or line geometries before rendering.
One common approach is to use vector tiles (usually Mapbox PBF format) and parse them into geometry. Libraries like mapbox-vector-tile together with pbf can decode the tile data. After decoding, you can convert features such as roads, land polygons, and buildings into Three.js geometries.
Typical pipeline looks something like this
vector tile request → decode PBF → convert features to geometry → build meshes/lines → add to Three.js scene
For example
roads → Line or LineSegments
land use → ShapeGeometry or custom triangulated meshes
buildings → ExtrudeGeometry or instanced meshes
This lets you fully control materials, shaders, and lighting because everything becomes native Three.js objects rather than a map overlay.
Another approach is using frameworks that already bridge map data and Three.js. A few worth looking at are threebox and Mapbox GL JS. These are useful but they still keep the map renderer separate from the Three.js scene, which sounds like the limitation you’re trying to avoid.
If you want something closer to a Pokémon GO style world where the map is part of the 3D environment, a custom tile streaming system works well:
map tile grid → load vector tiles based on camera position → generate geometry → cache tiles → dispose when far away
That approach also makes it easier to add things like procedural buildings, terrain displacement, or shader based styling for roads and districts.
I’ve been building browser based 3D environments and streaming scene systems in Three.js where assets and world chunks load dynamically into the scene.
Example environment
https://theneoverse.web.app/#threeviewer&&crateria
If you’re going fully Three.js driven, the key pieces are tile decoding, geometry generation, and a tile manager that streams tiles based on camera position. That gives you full control over shaders, lighting, and world interaction.