A project by Rafael Gaitán

Ask your BIM + GIS data anything.

Geoxide is an embeddable AI assistant that connects to your building models, GIS layers, and maps and understands them — so you can ask questions in plain language and watch the answers light up on a live 3D globe.

A technology preview — no public demo running right now. Want a live walkthrough? Reach out.

No more digging through files.

One question. Your answer. On the map.

Ask in plain language

Type questions the way you'd ask a colleague. No query languages, no GIS expertise, no training required.

"Which rooms on Level 3 exceed 50 m²?"

See it on the globe

Answers don't just appear as text — they light up as layers and 3D models on a live map, so you instantly see the where, not just the what.

Results appear as map layers in real time

BIM meets GIS

Building models and geographic features, unified. Ask questions that span both — floors, walls, parcels, roads, utilities — all at once.

"Show buildings within 200 m of the river with more than 5 floors"

A look inside.

The chat assistant and the 3D globe, working on real BIM + GIS data.

Geoxide showing Valencia's administrative districts as a map layer, with a breakdown in the chat panel
Ask about Valencia's districts — all 160 administrative areas appear as a map layer, with a clear breakdown in chat.
A georeferenced IFC/BIM office building rendered in 3D on the Cesium globe
Georeferenced IFC/BIM models rendered in 3D on the globe, in their real-world location.
Buildings within 250 m of Valencia's city centre highlighted on the map, with the reasoning explained in chat
Spatial queries drawn live — buildings within 250 m of the city centre — with the reasoning explained in plain language.

Screenshots from a development build. Want to see it run on your own data? Get in touch.

Under the hood.

Built from the ground up in Rust — embeddable, render-independent, and provider-agnostic.

Agentic RAG core

An async Rust agent does tool-calling over your data — SQL, spatial queries and semantic search — turning a plain-language question into a precise answer.

Custom 3D globe

A bespoke LOD globe renderer built on Bevy + WebGPU, with floating-origin precision. Compiles to a Cesium-like wasm/JS library you can drive from any web host.

IFC / BIM ingest

Industry-standard IFC files are parsed, georeferenced, and exported to 3D meshes — query rooms, walls, beams, columns and slabs by name, type or property.

PostGIS + pgvector

Geographic features and embeddings live in PostGIS. The agent connects with a strictly read-only role — your data stays where it is, never copied or migrated.

Embeddable SDKs

TypeScript and Rust SDKs over a shared wire protocol — token streaming, typed map actions, reconnect. Drop the chat into your own app and map renderer.

Runs on your own infrastructure

Designed to run on-premise, inside your own environment — your data never leaves it. Bring your own AI provider: Anthropic Claude, any OpenAI-compatible API, or local models.

RustBevyWebGPU / WASMPostGIS pgvectorIFCTypeScriptCesium & LeafletAWS

About the maker.

I'm Rafael Gaitán — a software engineer specialised in 3D graphics, geospatial systems and real-time rendering, with two decades building high-performance visualization and simulation software. Geoxide is my take on what a modern, AI-native interface to BIM + GIS data should feel like: fast, embeddable, and honest about where your data lives.

Every layer here — the agent, the IFC pipeline, the spatial backend and the custom WebGPU globe — was designed and built end-to-end in Rust. I'm available for consulting and freelance work around 3D/geospatial visualization, rendering engines, and AI-assisted data tooling.

What I can help with

  • 3D & geospatial visualization (globes, terrain, BIM/GIS)
  • Real-time rendering engines (Rust, Bevy, WebGPU, WASM)
  • IFC / BIM data pipelines & PostGIS spatial backends
  • AI-assisted tooling & agentic RAG over domain data
  • Embeddable SDKs & product architecture

Get in touch.

Interested in Geoxide on your own data, or in working together? I'd love to hear from you.