Small but important rendering update in OpenGlobus v1.
I migrated the text rendering pipeline to MTSDF, which improves font sharpness, outline quality, and fixes several rendering issues with special characters.
Live examples:
https://t.co/mwvq7Jpsbh
https://t.co/ZEUS8adDMm
Atlas generation is based on Chlumsky’s excellent msdf-atlas-gen:
https://t.co/0WRHLvoeqm
Next step: Arabic text and complex font support.
#OpenGlobus #WebGL #Geospatial #3DVisualization #GIS #Terrain #PlanetaryMapping #JavaScript #Mars #Moon #msdf
OpenGlobus v1.0 lighting system progress demo: the object is now consistent with the scene’s lighting, sun, and atmosphere. As the model moves, you can see the changing highlights, reflections, and fuselage illumination, especially under the low sunset sun.
#opensource #openglobus #uav #maps #gis #computergraphics #webgl #javascript #typesctipt #geospatial #terrain #aerospace #simulation #earthobservation #remotesensing
Introducing the Mapillary API Demo! 🌐
An interactive web app to test our API’s capabilities. Source code included.
Blog: https://t.co/stAdLw0arv
GitHub: https://t.co/8pQug07XMj
#Mapillary#GIS#OpenSource#Geospatial
Hey everyone 👋
I’ve been working on the next version of OpenGlobus and honestly - it’s shaping up to be something much bigger than just an update.
I’m rebuilding everything from the ground up: the engine itself, the plugins all of it. The goal is to make it faster, cleaner, and more looks like real engine.
So far:
- Performance is about 3x better
- The engine has a bunch of new capabilities
- Plugins are getting a serious upgrade too.
#OpenGlobus #WebGL #3D #GIS #maps #geospatial #visualization #gameengine #javascript #WebDevelopment #opensource #graphics #rendering #tech
🚀 Just dropped a new guide: Integrating Mapillary Street-Level Imagery with OpenLayers in Vue 3!
Learn how to:
• Connect street-level photos with your interactive maps
• Sync map clicks with immersive 360° imagery
• Build richer, more powerful GIS/web mapping applicationsStreet-level data is a game-changer for modern geospatial apps
Read the full tutorial:
https://t.co/pTsCwTSO9z
#VueJS #OpenLayers #Mapillary #GIS #WebDevelopment #Geospatial #JavaScript #Mapping
@mapillary
How raster tile rendering works:
Every map tile request comes in as (z, x, y). Here's what happens under the hood:
1. Tile → Bbox:
The z (zoom level) tells us how many times to subdivide the world — at z=0 it's 1 tile, at z=10 it's ~1M tiles. The x (column) and y (row) pinpoint exactly which tile in that grid we need. Together, z/x/y map to a precise geographic bounding box.
2. Clip:
The raster (your satellite image, DEM, etc.) gets clipped to that bounding box. If the tile at (x, y) doesn't intersect the raster extent at all, we skip it entirely — no wasted compute.
3. Resample (where interpolation happens):
The clipped data gets fitted into exactly 256×256 pixels aligned to the tile grid. This is the key step — the clipped data doesn't have pixels that line up perfectly with the (x, y) tile boundaries. So the renderer interpolates source pixel values onto the new 256×256 grid using methods like nearest-neighbor, bilinear, or cubic. This is how a 30m DEM can serve smooth tiles at any zoom level.
4. Normalize → PNG:
Pixel values get scaled from the dataset's min/max range to 0–255, converted to an image (RGB or grayscale), black/nodata pixels get set to transparent, and it ships as a PNG.
#GIS #Geospatial #Python #COG #Raster #TileServer #RemoteSensing #CloudNativeGeo #GeoPython #Mapping
🧵 Thread
1/
If your angles, rotations, or directions are ever “slightly wrong”…
There’s a high chance this is the bug 👇
atan(y/x) ❌ vs atan2(y, x) ✅
#GameDev#Graphics#Robotics#GIS#Programming
Vue.js is still my first preference for frontend 💚
Built a small practice project: Vue Layers while practicing Vue.
Repo 👇
https://t.co/8mFVkfyMho
Feedback welcome! 🚀