">
VICTOR SAAD
All buildsTodos os projetos
Python · three.js · open datadados abertos

Largo da Batata in 3D

O Largo da Batata em 3D

A whole São Paulo neighbourhood you can fly through in the browser: every building at its real height, the terrain, the trees and the streets, with the city's public layers on top. No API keys, no paid services, no trackers.

Um bairro inteiro de São Paulo para sobrevoar no navegador: cada prédio na altura real, o relevo, as árvores e as ruas, com as camadas públicas da cidade por cima. Sem chave de API, sem serviço pago, sem rastreador.

Pythonthree.jsOpenStreetMapGeoSampaOverture MapsCopernicus DEMsystemdCloudflare Tunnel
Fly through it liveSobrevoar ao vivo → GitHub
The live site, recorded as is: overview, a low-angle pass, then the zoning and price-per-m² layers.
O site no ar, gravado como está: visão geral, um rasante e depois as camadas de zoneamento e de preço do m².

Why

Por quê

Map apps flatten a city. To understand a neighbourhood you want to see what is tall, what is still low and could rise, where water collects when it rains, where the trains run and what a square metre actually sells for. São Paulo publishes almost all of that as open data; it just lives in a dozen portals and file formats.

Os apps de mapa achatam a cidade. Para entender um bairro você quer ver o que é alto, o que ainda é baixo e pode subir, onde a água junta quando chove, por onde passa o trem e por quanto o metro quadrado é vendido de verdade. São Paulo publica quase tudo isso como dado aberto; só que espalhado em uma dúzia de portais e formatos.

What is in it

O que tem nele

  • About 16,000 buildings in a 2.3 km ring, extruded from the city's footprints and heights, with Overture filling the gaps OpenStreetMap misses.
  • Terrain to 24 km, over 8,000 street trees, streets, squares and rail, plus 450 places by category.
  • City layers: zoning (law 18,177/24), lots that could become towers, approved new buildings and social-housing permits, flood zones, bus, metro and rail.
  • Price per m² from paid property-transfer tax records (ITBI), aggregated over 255 city blocks, and crime counts on a 100 m grid.
  • Sun and shade, night mode, street level, in Portuguese and English, light and dark.
  • Cerca de 16 mil prédios num anel de 2,3 km, levantados a partir dos contornos e alturas da prefeitura, com o Overture cobrindo o que falta no OpenStreetMap.
  • Relevo até 24 km, mais de 8 mil árvores de rua, ruas, praças e trilhos, e 450 lugares por categoria.
  • Camadas da cidade: zoneamento (Lei 18.177/24), lotes que podem virar prédio, obras novas aprovadas e alvarás de moradia popular, manchas de alagamento, ônibus, metrô e trem.
  • Preço do m² das guias de ITBI pagas, agregado em 255 quadras, e ocorrências policiais numa grade de 100 m.
  • Sol e sombra, modo noite, nível da rua, em português e inglês, claro e escuro.

How it is built

Como foi feito

A Python pipeline downloads each source, reprojects everything onto one local grid and writes compact JSON and binary files. The browser draws them with three.js: the near neighbourhood loads at once, and the outer ring streams in 500 m chunks as the camera moves, the way games load a world. The whole site is static files behind a tiny allowlisted Python server, sandboxed by systemd and published through a Cloudflare Tunnel.

Um pipeline em Python baixa cada fonte, projeta tudo numa grade local só e grava arquivos JSON e binários compactos. O navegador desenha com three.js: o miolo do bairro carrega de uma vez e o anel de fora chega em pedaços de 500 m conforme a câmera anda, como os jogos carregam um mundo. O site inteiro é arquivo estático atrás de um servidor Python mínimo com allowlist, isolado pelo systemd e publicado por um túnel da Cloudflare.

Privacy by design

Privacidade desde o desenho

Public data can still point at people. Sales prices appear only as block medians with a minimum number of sales; crime only as counts in 100 m cells; lots that could become towers are private homes, so they carry no address. Only large new buildings with a public permit show where they are.

Dado público ainda pode apontar para pessoas. Os preços de venda só aparecem como mediana por quadra, com mínimo de vendas; os crimes só como contagem em células de 100 m; os lotes que podem virar prédio são casas de alguém, então saem sem endereço. Só obras novas de porte, com alvará público, mostram onde estão.

Where it came from

De onde veio

It started as one piece of the home decision engine, rebuilt around a single candidate home. This is the public cut: recentred on Largo da Batata, anonymised and open source.

Começou como uma peça do motor de decisão de moradia, montada em volta de um imóvel candidato. Esta é a versão pública: recentrada no Largo da Batata, anonimizada e com código aberto.

Want to talk about this? I'm happy to walk through how it was built.Quer conversar sobre isso? Mostro com prazer como foi construído.