
April 20, 2026
In 2025, at the RubyWorld Conference, engineers from Tokyo Gas presented a real problem:
👉 generate maps in real time 👉 at high throughput 👉 with strict performance constraints
ImageMagick-based solutions couldn’t keep up.
The gap in Ruby
Today in Ruby:
- RMagick / ruby-vips → rely on external processes
- native bindings → outdated or unmaintained
There isn’t a modern, simple, truly native option.
The approach
I built ruby-libgd + libgd-gis with a straightforward goal:
- in-memory rendering
- no external processes
- full control from Ruby

require "gd/gis"map = GD::GIS::Map.new( bbox: [139.68, 35.63, 139.82, 35.75], zoom: 13)map.add_geojson("data.geojson")map.rendermap.save("map.png")
What it enables
- generate maps from GeoJSON
- draw routes, points, and polygons
- apply custom styles
- produce production-ready images
🎥 Full talk (in Spanish)
I presented this in a virtual talk at Ruby SUR:
👉
👉

In progress
- animated maps
- PostGIS integration
- custom tile servers
👉 Check the project
GitHub: https://github.com/ggerman/ruby-libgd
GitHub: https://github.com/ggerman/libgd-gis
