Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Simulador de trânsito microscópico do centro de Belo Horizonte: cada carro é um agente com rota, faixa, motorista e decisões próprias, andando sobre a malha viária real (OpenStreetMap), com semáforos, preferência nos cruzamentos e motoristas que dirigem mal. A demanda é calibrada com contagens e radares da BHTrans. ▶ Rodar no navegador: https://danielsussa.github.io/bh-traffic-simulator/ (cidade inteira: ?mapa=cidade)README 전문 보기 ↗
Simulador de trânsito microscópico do centro de Belo Horizonte: cada carro é um agente com rota, faixa, motorista e decisões próprias, andando sobre a malha viária real (OpenStreetMap), com semáforos, preferência nos cruzamentos e motoristas que dirigem mal. A demanda é calibrada com contagens e radares da BHTrans.
▶ Rodar no navegador: https://danielsussa.github.io/bh-traffic-simulator/
(cidade inteira: ?mapa=cidade)
scripts/build-map.mjs converte o extrato do OpenStreetMap (data/raw/) num grafo: nós = cruzamentos, semáforos e placas de PARE; arestas = trechos com geometria, faixas por sentido, limite de velocidade, viadutos. Semáforos vêm do OSM (incluindo faixas de pedestre semaforizadas); cruzamentos de avenida dentro da Contorno sem dado ganham um semáforo estimado (marcado no mapa). Praças circulares sem a tag de rotatória (ex.: Raul Soares) são detectadas pela geometria.
Pontos próximos viram um cruzamento controlado; as aproximações são agrupadas em fases pela direção. Tempo fixo: verde proporcional ao porte das vias, amarelo 3 s, vermelho geral 2 s, defasagem aleatória entre cruzamentos (sem onda verde).
src/sim/demand.ts, src/sim/calibration.ts): portões nas vias que saem do mapa com fluxos dos radares da BHTrans (set/2023, 10h) ou, sem radar, contagens do Diagnóstico de Mobilidade 2017 ajustadas; destinos e mix de viagens pela Pesquisa Origem-Destino 2012; curva horária medida nos radares (às 10h o tráfego é 87% do pico das 7h). Há um cenário explícito com mais travessias do centro.scripts/build-subarea.ts, src/sim/cordon.ts): a cidade inteira é simulada por 30 min, e com os tempos de percurso congestionados cada viagem é roteada; registra-se onde ela entra/sai da Contorno (ou nasce/estaciona dentro). O resultado é a matriz origem-destino do recorte.Três níveis, com frequências diferentes:
Rota (ao nascer e quando trava) — A* minimizando o tempo esperado: tempo observado do trecho × ruído pessoal (0,85–1,35) × preferência por hierarquia (local ×1,4, coletora ×1,15) + espera no semáforo (Webster, (ciclo − verde)² / 2·ciclo) ou PARE + penalidade de conversão/retorno. Recalcula se os próximos trechos acumulam > 60 s de atraso, se fica > 20 s bloqueado esperando espaço numa saída, ou se chega na faixa errada perto do cruzamento.
Faixa (a cada ~1 s) — faixas válidas dependem das saídas do nó (a continuação usa todas; um ramo usa as faixas do seu lado, quantas ele tiver). Na conversão a ordem das faixas é mantida. Troca de faixa estilo MOBIL: obrigatória (posicionar para a conversão, inclusive a conversão depois de um trecho curto) ou por vantagem de aceleração, com viés para a direita, só com folga segura atrás e à frente.
Aceleração (a cada 0,25 s) — modelo IDM (Intelligent Driver Model):
a = a_max · [ 1 − (v/v₀)⁴ − (s*/s)² ] s* = s₀ + v·T + v·Δv / (2√(a_max·b))
A aceleração final é a menor entre: andar livre até v₀ (limite × atrito urbano × gosto do motorista); curvas (v ≤ √(a_lateral·R), freando só o necessário e acelerando a partir do ápice); o carro da frente (ou o último da faixa de destino, do outro lado do cruzamento); e a linha de retenção, quando ele é o primeiro da fila, checando em ordem:
Por fim, fatores humanos: tempo de reação para arrancar e distrações (o barbeiro freia do nada). Uma trava física impede sobreposição; quem fica > 4 min parado desiste (é removido).
| Normal | Apressado | Barbeiro | |
|---|---|---|---|
| Distância do carro da frente (T) | 0,9–1,4 s | 0,5–0,8 s | 1,0–1,8 s |
| Velocidade desejada × limite | 0,85–1,1 | 1,05–1,3 | 0,75–1,0 |
| Reação para arrancar | 0,3–0,8 s | 0,1–0,3 s | 1–3 s |
| Fecha o cruzamento | nunca | 60% | 35% (sem querer) |
| Avança vermelho recém-aberto | nunca | 35% | 5% |
| Fura a preferência | nunca | 10% | 20% |
| Semáforo apagado | para e olha 1–2 s | reduz e olha 0,3–0,8 s | para e olha 2–4 s |
O controle Caos é a fração de motoristas ruins (60% apressados, 40% barbeiros).
Velocidade mediana de automóveis às 10h nos radares dentro da Contorno (real × simulado, demanda 70%): erro máximo de ~11 km/h, contra até 29 km/h antes da calibração de atrito urbano e das rotas congestionadas. Ainda mais rápidos que o real: Bias Fortes e Contorno perto da Savassi (faltam ônibus e pedestres). Detalhes: npm run validate:speeds -- 0.7.
npm install
npm run dev # http://localhost:5173 (?mapa=cidade para o recorte grande)
Scripts úteis (npx tsx scripts/<nome>.ts):
| Script | Para quê |
|---|---|
build-map.mjs | regenera o grafo a partir do OSM (npm run map:build) |
build-subarea.ts | recorte da Contorno + matriz OD com trânsito simulado (~6 min) |
bench.ts | simula sem navegador (MAPA=contorno PREFILL=1 SEMAFOROS=0 CHAOS=0.5) |
compare-speeds.ts | velocidade simulada × radares |
validate-radars.ts | fluxo simulado × radares (mapa da cidade) |
hotspots.ts | vias com mais carros parados |
demand-report.ts, trip-report.ts | demanda por portão/categoria, distância das viagens |
check-overlap.ts, check-turns.ts, saturation.ts | testes de sanidade do modelo |
src/map/network.ts grafo viário (carregamento, busca espacial)
src/sim/graph.ts links por sentido, faixas, conversões, raios de curva, rotatórias
src/sim/signals.ts semáforos (agrupamento, fases, tempos, estimados)
src/sim/router.ts A* por tempo de viagem
src/sim/demand.ts demanda calibrada da cidade
src/sim/cordon.ts demanda do recorte (matriz OD)
src/sim/drivers.ts perfis de motorista
src/sim/simulation.ts motor: IDM, cruzamentos, faixas, reroteamento
src/render/* desenho em Canvas (mapa, carros, semáforos)
data/radar/).