# giseli2007/sistema-de-otimizacao-de-trajetorias_3d architecture

> Architecture diagram of the GitHub repository giseli2007/sistema-de-otimizacao-de-trajetorias_3d, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d
- Repository: https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d

## Overview

The product is a topographic 3D map interface, served locally, alongside a Python trajectory-optimization core that the README describes as a skeleton. The visible workflow is to load the map, adjust its terrain and layers, select an area, and choose trajectory endpoints; calculation currently only prepares and logs a request, with no API integration shown. The Python terrain, road, model, planner and calculation modules are retained as distinct intended domain stages, but their implementation and connections are not evidenced in the excerpts. Edges are limited to documented or excerpt-visible wiring.

Main entry points: [`web/js/main.js`](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/main.js) (Map bootstrap), [`web/js/style.js`](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/style.js) (Map styling), [`web/js/terrain.js`](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/terrain.js) (3D terrain mode), [`web/js/trajetoria.js`](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/trajetoria.js) (Route selection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Map interface"]
  node_entry["Map bootstrap<br/>[main.js]"]
  node_config["Map configuration<br/>[config.js]"]
  node_layers["Map styling<br/>[style.js]"]
  node_controls["Layer controls<br/>[controls.js]"]
  node_area["Area selection<br/>[area.js]"]
  node_routeui["Route selection<br/>[trajetoria.js]"]
  node_hud["Map HUD<br/>[hud.js]"]
end

subgraph group_terrain["Terrain display"]
  node_terrainview["3D terrain mode<br/>[terrain.js]"]
end

subgraph group_core["Optimization core"]
  node_terrainbase["Terrain interface<br/>[base.py]"]
  node_terrain_grid["Grid terrain<br/>[grid_terrain.py]"]
  node_terrain_synth["Synthetic terrain<br/>[synthetic.py]"]
  node_terrain_tiles["Terrarium terrain<br/>[terrarium.py]"]
  node_roads["Road data<br/>[classes.py]"]
  node_osm["OSM import<br/>[osm.py]"]
  node_vehicle["Vehicle constraints<br/>[vehicle.py]"]
  node_constraints["Route restrictions<br/>[restricoes.py]"]
  node_cost["Route cost<br/>[cost.py]"]
  node_graph["Planning graph<br/>[graph.py]"]
  node_astar["A-star planner<br/>[astar.py]"]
  node_dijkstra["Dijkstra planner<br/>[dijkstra.py]"]
  node_metrics["Route metrics<br/>[metrics.py]"]
  node_calc["Calculation utilities"]
  node_vizcli["Batch visualization<br/>[cli.py]"]
end

subgraph group_server["HTTP serving"]
  node_server["Static web server<br/>[servir.py]"]
  node_api["Future route API<br/>[rotas.py]"]
end

node_user(("Map user"))
node_browser(("Browser"))

node_user -->|"uses"| node_browser
node_browser -->|"requests site"| node_server
node_server -->|"serves web files"| node_entry
node_entry -->|"reads settings"| node_config
node_entry -->|"creates style"| node_layers
node_entry -->|"creates terrain mode"| node_terrainview
node_entry -->|"starts controls"| node_controls
node_entry -->|"starts HUD"| node_hud
node_entry -->|"starts area selection"| node_area
node_entry -->|"starts route selection"| node_routeui
node_controls -->|"reads options"| node_config
node_controls -->|"rebuilds style"| node_layers
node_area -->|"rebuilds bounds"| node_layers
node_area -->|"measures displayed elevation"| node_terrainview
node_layers -->|"builds sources"| node_config
node_layers -->|"reapplies terrain"| node_terrainview
node_terrainview -->|"sets map terrain"| node_browser
node_hud -->|"reads terrain state"| node_terrainview
node_user -->|"selects endpoints"| node_routeui
node_routeui -.->|"future calculation"| node_astar
node_routeui -.->|"future HTTP integration"| node_api
node_osm -.->|"imports road data"| node_roads
node_terrainbase -.->|"terrain implementation"| node_terrain_grid
node_terrainbase -.->|"terrain implementation"| node_terrain_synth
node_terrainbase -.->|"terrain implementation"| node_terrain_tiles
node_graph -.->|"planner input"| node_astar
node_graph -.->|"planner input"| node_dijkstra
node_astar -.->|"route evaluation"| node_metrics
node_dijkstra -.->|"route evaluation"| node_metrics

click node_entry "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/main.js"
click node_config "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/config.js"
click node_layers "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/style.js"
click node_controls "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/controls.js"
click node_area "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/area.js"
click node_routeui "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/trajetoria.js"
click node_hud "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/hud.js"
click node_terrainview "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/terrain.js"
click node_terrainbase "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/base.py"
click node_terrain_grid "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/grid_terrain.py"
click node_terrain_synth "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/synthetic.py"
click node_terrain_tiles "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/terrarium.py"
click node_roads "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/vias/classes.py"
click node_osm "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/vias/osm.py"
click node_vehicle "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/vehicle.py"
click node_constraints "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/restricoes.py"
click node_cost "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/cost.py"
click node_graph "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/graph.py"
click node_astar "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/astar.py"
click node_dijkstra "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/dijkstra.py"
click node_metrics "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/metrics.py"
click node_calc "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/tree/main/calclib"
click node_vizcli "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/viz/cli.py"
click node_server "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/servidor/servir.py"
click node_api "https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/servidor/rotas.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_config,node_layers,node_controls,node_area,node_routeui,node_hud,node_user,node_browser toneBlue
class node_terrainview toneAmber
class node_terrainbase,node_terrain_grid,node_terrain_synth,node_terrain_tiles,node_roads,node_osm,node_vehicle,node_constraints,node_cost,node_graph,node_astar,node_dijkstra,node_metrics,node_calc,node_vizcli toneMint
class node_server,node_api toneRose
```

## Components

### Map interface

- [Map bootstrap](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/main.js): `web/js/main.js`
- [Map configuration](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/config.js): `web/js/config.js`
- [Map styling](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/style.js): `web/js/style.js`
- [Layer controls](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/controls.js): `web/js/controls.js`
- [Area selection](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/area.js): `web/js/area.js`
- [Route selection](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/trajetoria.js): `web/js/trajetoria.js`
- [Map HUD](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/hud.js): `web/js/hud.js`

### Terrain display

- [3D terrain mode](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/web/js/terrain.js): `web/js/terrain.js`

### Optimization core

- [Terrain interface](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/base.py): `terreno/base.py`
- [Grid terrain](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/grid_terrain.py): `terreno/grid_terrain.py`
- [Synthetic terrain](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/synthetic.py): `terreno/synthetic.py`
- [Terrarium terrain](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/terreno/terrarium.py): `terreno/terrarium.py`
- [Road data](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/vias/classes.py): `vias/classes.py`
- [OSM import](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/vias/osm.py): `vias/osm.py`
- [Vehicle constraints](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/vehicle.py): `model/vehicle.py`
- [Route restrictions](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/restricoes.py): `model/restricoes.py`
- [Route cost](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/model/cost.py): `model/cost.py`
- [Planning graph](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/graph.py): `planner/graph.py`
- [A-star planner](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/astar.py): `planner/astar.py`
- [Dijkstra planner](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/dijkstra.py): `planner/dijkstra.py`
- [Route metrics](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/planner/metrics.py): `planner/metrics.py`
- [Calculation utilities](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/tree/main/calclib): `calclib`
- [Batch visualization](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/viz/cli.py): `viz/cli.py`

### HTTP serving

- [Static web server](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/servidor/servir.py): `servidor/servir.py`
- [Future route API](https://github.com/giseli2007/sistema-de-otimizacao-de-trajetorias_3d/blob/main/servidor/rotas.py): `servidor/rotas.py`

### Other components

- **Map user**
- **Browser**

## Connections

- Map user → Browser: uses (evidence: `README.md`)
- Browser → Static web server: requests site (evidence: `servidor/servir.py`)
- Static web server → Map bootstrap: serves web files (evidence: `servidor/servir.py`)
- Map bootstrap → Map configuration: reads settings (evidence: `web/js/main.js`)
- Map bootstrap → Map styling: creates style (evidence: `web/js/main.js`)
- Map bootstrap → 3D terrain mode: creates terrain mode (evidence: `web/js/main.js`)
- Map bootstrap → Layer controls: starts controls (evidence: `web/js/main.js`)
- Map bootstrap → Map HUD: starts HUD (evidence: `web/js/main.js`)
- Map bootstrap → Area selection: starts area selection (evidence: `web/js/main.js`)
- Map bootstrap → Route selection: starts route selection (evidence: `web/js/main.js`)
- Layer controls → Map configuration: reads options (evidence: `web/js/controls.js`)
- Layer controls → Map styling: rebuilds style (evidence: `web/js/controls.js`)
- Area selection → Map styling: rebuilds bounds (evidence: `web/js/area.js`)
- Area selection → 3D terrain mode: measures displayed elevation (evidence: `web/js/area.js`)
- Map styling → Map configuration: builds sources (evidence: `web/js/style.js`)
- Map styling → 3D terrain mode: reapplies terrain (evidence: `web/js/style.js`)
- 3D terrain mode → Browser: sets map terrain (evidence: `web/js/terrain.js`)
- Map HUD → 3D terrain mode: reads terrain state (evidence: `web/js/hud.js`)
- Map user → Route selection: selects endpoints (evidence: `web/js/trajetoria.js`)
- Route selection → A-star planner: future calculation
- Route selection → Future route API: future HTTP integration (evidence: `README.md`)
- OSM import → Road data: imports road data
- Terrain interface → Grid terrain: terrain implementation
- Terrain interface → Synthetic terrain: terrain implementation
- Terrain interface → Terrarium terrain: terrain implementation
- Planning graph → A-star planner: planner input
- Planning graph → Dijkstra planner: planner input
- A-star planner → Route metrics: route evaluation
- Dijkstra planner → Route metrics: route evaluation
