ALTO
ALTO is an AI-powered preview tool that shows what the view could look like from a specific location and height.
Core trick
Street View photos are passed as reference images to Nano-Banana, so the generated skyline stays anchored to the geocoded location.
Description
ALTO is an AI-powered preview tool that shows what the view could look like from a specific location and height.
Users enter an address, floor level, viewing direction, and time of day. ALTO uses Google Maps, Places, and Geocoding to lock onto the exact spot, then pulls real context from Street View, satellite maps, and Elevation data. The Street View images are fed directly into Nano-Banana as reference images, so the generated skyline stays tied to the real location. Gemini writes the short description, and Nano-Banana generates the final panoramic preview image.
This solves a common problem: people cannot easily judge a property’s actual view remotely or when it hasn't been built yet. ALTO helps curious users and potential buyers/renters compare options faster and make better decisions with less guesswork.
README excerpt
# ALTO
ALTO is a skyline-view visualization and synthesis platform.
## Monorepo Structure
- `backend/` FastAPI (Python 3.12+) service with async orchestration and Google AI/Maps adapters.
- `frontend/` Next.js App Router experience implementing the Horizon Interface.
## Backend Setup
```bash
cd backend
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
cp .env.example .env
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
## Frontend Setup
```bash
cd frontend
npm install
cp .env.example .env.local
npm run dev
```
## Required Environment Variables
### Backend
- `MOCK_MODE` to disable real Google calls for deterministic local testing.
- `GEMINI_API_KEY` for Gemini/Nano Banana model calls.
- `GEMINI_MODEL` default `gemini-3`.
- `NANO_BANANA_MODEL` default `gemini-flash-image-3`.
- `GOOGLE_MAPS_API_KEY` for Static Maps, Places, Geocoding.
- `GOOGLE_MAPS_BROWSER_API_KEY` optional browser-facing Maps key.
- `GOOGLE_MAP_ID` optional photorealistic map style.
- `FAR_STREETVIEW_ENABLED` toggles far-anchor Street View probing (default `true`).
- `FAR_STREETVIEW_PROBE_RADIUS_M` metadata probe radius for far anchors (default `120`).
- `PUBLIC_BASE_URL` optional base URL behind reverse proxy.
### Frontend
- `GOOGLE_MAPS_BROWSER_API_KEY`
- `PUBLIC_BASE_URL` for API base URL (default `http://127.0.0.1:8000`)
## Core Endpoint
- `POST /api/v1/preview`
- Request:
```json
{
"address": "181 Fremont St, San Francisco, CA",
"lat": 37.79061,
"ln