Skip to content

map2/gelo: Treta no Gelo — festa junina de inverno na serra, geometria nova (USANTOS 3/3) - #442

Draft
rubenmarcus wants to merge 20 commits into
feat/times-e-mapas-completofrom
map2/gelo
Draft

map2/gelo: Treta no Gelo — festa junina de inverno na serra, geometria nova (USANTOS 3/3)#442
rubenmarcus wants to merge 20 commits into
feat/times-e-mapas-completofrom
map2/gelo

Conversation

@rubenmarcus

Copy link
Copy Markdown
Member

Por quê

O PR #372 (fortaleza/bastião de gelo genérico) foi REJEITADO pelo dono — "os mapas do usantos são os mais low poly do jogo". Este mapa nasce do zero com identidade nossa: festa junina de inverno em cidade serrana do sul — galpão de festival com palco e bandeirinhas, praça da fogueira central (PointLight quente com flicker + fumaça), 4 barracas juninas (pastel, pescaria, correio elegante, maçã do amor), caminhão de quentão, fardos de palha, araucárias, serra em camadas e neve pisada com trilhas de trenó. Nada de física de gelo nem fortaleza.

Régua nova (antes do mapa, com mutações)

  • tools/eval/gelo-check.mjs (GL1-GL7, eval:gelo no check:fast): nasceu VERMELHA por mapa ausente. Hoje: galpão 1 · fogueiras 3 com luz oscilando · barracas 4 · quentão 1 · fardos 12 · árvores 22 · textura em 269/269 malhas (100%) · 445 waypoints conexos · 18 pickups de 8 tipos · 20 texturas distintas. Mutantes sem-fogueira/fogo-parado/sem-galpao mordem a cláusula certa.
  • eval:look estendido ao gelo: fog == horizonte de sky_gelo.webp (ΔE76 = 0,5; teto 8).

Decisões com número

  • Serra matte painting: os cones de 5 lados liam como pirâmide de primário na primeira captura 3:2 — viraram paredes de crista recortada (ShapeGeometry unlit + fog, 2 camadas de cor).
  • Grade medida em frame: a interpolação dos vizinhos (exposicao 1,50) entregou L* 53,0 (dia nublado, não crepúsculo). exposicao 1,20 → L* 49,2 na média dos 4 frames, blk < 0,1 %, fogueiras protagonistas.
  • Céu: sky_gelo.webp (OpenRouter, crepúsculo com linha de araucárias); emenda equiretangular suavizada por cross-blend das bordas (Δ máx 8/255) após costura visível na captura.
  • Caminhão de quentão GLB via Mint (gelo_quentao.glb, 4.306 tris, 412 KB, FONTE.md + SHA) — âncora do flanco B; procedural de fallback com colisores idênticos.
  • Preview do menu: captura real in-game (fogueira central, sem HUD) via g2ui-map-previews, substituindo a key art provisória.

Ambiência (obrigatória nas 3 frentes)

  • Slot ambience: no registro (rat, pigeonGround, dog, chicken, cow) + fauna em cena: galinhas e vacas de serra, caramelo, ratos e pombos ground (AR1-AR6 verdes, 18 mapas).
  • Som do acervo FONTE.md: loops vento + grilos, bioma campo (galo/pássaro/latido). Nenhum arquivo de áudio novo — o audio-pack publicado não muda.

Verificado

check:fast 103/105 com os 2 vermelhos sendo docs não re-derivada no momento da rodada (re-derivada e verde em seguida: DOCS1 ✓) · gelo-check GL1-GL7 · ambience-registry · look 4/4 · mapa-id · props-acervo · asset-integrity · gltf-validator · map-contrato · capturas 3:2 olhadas frame a frame.

NÃO verificado

  • GPU real / fps com 3 PointLights de fogueira (capturas headless)
  • Sprites de fumaça da fogueira (coluna lê "caixa" de perto em alguns ângulos — dívida estética declarada)
  • MAP2 B informativo: exposição de spawn B 50,4% (E: 0,8%) — assimetria estrutural (galpão×caminhão); se incomodar, âncora maior no flanco B
  • Partida longa com bots (spawn-settle 288 colocações verde, mas sem soak)

Frente USANTOS. O PR #372 (fortaleza de gelo genérica) foi rejeitado pelo
dono; a régua nasce vermelha (mapa ausente) e congela o tema NOSSO:
festa junina de inverno na serra — galpão, fogueiras com PointLight que
oscila, barracas juninas, caminhão de quentão, fardos, araucárias,
textura ≥85%, gameplay completo e horizonte próprio. Mutantes:
sem-fogueira (GL2+GL3), fogo-parado (GL3), sem-galpao (GL2).

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Panorama gerado via OpenRouter (gemini-3-pro-image, 16:9 → 2048×1024):
araucárias em silhueta contra banda laranja, zênite azul-gelo. Horizonte
medido bcbebd (look-horizonte.py, banda 498-510) e assado rebakado.
Grade calibrada por interpolação dos vizinhos medidos: sol+hemi 1,85
entre o dia (≈2,7 · exp 1,5) e a penitenciaria (≈1,05 · exp 2,60) →
exposicao 1,50 mirando L* 33-38. look-check ganha 'gelo' e fica vermelho
até o mapa existir (boot cai no default).

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Arena CTF 64×84 simétrica (180°), procedural, registrada depois da
penitenciária. Galpão de festival com palco de forró (base E), praça da
fogueira central, 4 barracas juninas (pastel/pescaria/correio elegante/
maçã do amor), caminhão de quentão procedural (slot pronto pro GLB do
Mint), 8 fardos de palha, 22 araucárias/pinheiros instanciados, serra em
2 camadas no horizonte e bandeirinhas sem colisor. 3 fogueiras com
PointLight quente (sem sombra, SB2) + flicker no update + fumaça em
sprites. Neve pisada com pegadas e trilha de trenó; LOOK.gelo (crepúsculo
azul-laranja) via applyLook. Ambience: galinha/caramelo/vaca/rato/pombo
ground; som vento+grilos bioma campo. Sem mexer em física (groundHeightAt
plano, slowAt falso). InstBatch honra name e devolve meshes (padrão das
irmãs). Prévia do menu é key art 2D provisória — a captura real
(g2ui-map-previews gelo) fica com o orquestrador (slot de browser).

Régua: GL1-GL7 verde (449 waypoints conexos, 269 malhas 100% texturizadas,
20 texturas distintas, 18 pickups de 8 tipos); mutantes sem-fogueira,
fogo-parado e sem-galpao mordidos.

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
- 4 fardos em z=±33 fecham a linha de tiro sobre os spawns (MAP2 B media
  50,6% de exposição contra 0,8% do E, que tem o galpão);
- mesas ganham colisor do tampo e as pilhas de neve do rodapé viram
  leira baixa (<0,30 m): MAP1 16→0 pontos com corpo dentro de geometria;
- comentários novos encurtados para o teto de 2 linhas (eval:comentario);
- ARCH.md re-derivado (main.js 2813→2817 linhas — o arch:check mede os
  dois arquivos, a mensagem só cita game.js);
- g2ui-map-previews ganha a pose aérea do gelo (mesma dos irmãos USANTOS)
  para a captura real que o orquestrador vai rodar.

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
…edida + preview real

- gelo_quentao.glb (4.306 tris, 412 KB) no flanco B; procedural vira fallback
  (colisores idênticos); maps.js ganha slot props no gelo
- serra: cones de 5 lados liam como pirâmide na captura 3:2 — viram paredes
  de crista recortada (ShapeGeometry unlit + fog) em duas camadas
- céu: emenda equiretangular suavizada (Δ máx 8/255) + assado re-baked
- grade: interpolação entregou L* 53 (dia nublado); exposicao 1,20 medida
  em frame → L* 49,2 com blk < 0,1 % e fogueiras protagonistas
- preview do menu: captura real (fogueira central) substitui a key art
- FONTE.md + mint-assets.json (SHA) conforme eval:props-acervo

Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
csbrasil Ready Ready Preview Aug 27, 2026 1:38am

Request Review

@csbrasil-BOT csbrasil-BOT added needs-human-gameplay Mudança exige revisão humana de gameplay/render/HUD needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main labels Aug 25, 2026
@csbrasil-BOT

csbrasil-BOT commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

csbrasil-bot classification

Note

@rubenmarcus abriu 35 arquivo(s) · +1295 −54, base feat/times-e-mapas-completo.

O que mudou

área arquivos + amostra
📚 docs 15 +100 −47 ARCH.generated.md, README.md, SCRIPTS.md
🎨 assets 7 +0 −0 gelo.jpg, sky_gelo.webp, barraca_quentao.glb
🧪 arnês 6 +327 −3 ARCH.md, g2ui-map-previews.mjs, gelo-check.mjs
🎮 jogo 4 +25 −2 look.js, main.js, mapprops.js
📦 outros 2 +117 −2 mint-assets.json, package.json
🗺️ mapas 1 +726 −0 map_gelo.js

Labels

label por quê
needs-human-gameplay toca gameplay/render/HUD/mapa/personagem — decisão de humano
needs-staging mudança de runtime/UI — valida integrado no staging antes do merge
target:main vai direto pra main, sem fila de integração

@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head 10e4d913cca7
checks vermelhos 2
classe outra
hora do plantão 2026-08-25T08:04:34.127Z

Vermelho:

portao (https://github.com/corosolto/client/actions/runs/32823107776/job/97725278731)
build (https://github.com/corosolto/client/actions/runs/32823107688/job/97725278640)

Rabo do log:

2026-08-25T07:47:57.6178151Z   sertanejo     revolver38      0.188   0.461   1.035      3.4   3.11       11.3
2026-08-25T07:47:57.6178562Z   punk          ak         ik   0.211   0.389   1.014     3.12   3.55       10.6
2026-08-25T07:47:57.6179013Z   doidinho-bairro p90        ik   0.215   0.495   1.008     1.92   3.92       10.6
2026-08-25T07:47:57.6179463Z   pagodeiro     pistol           0.19   0.399    1.12     1.93   2.98       10.4
2026-08-25T07:47:57.6179919Z   lenda-lanhouse m4         ik   0.211   0.414   0.993     4.14   3.49         10
2026-08-25T07:47:57.6180330Z   et            awp             0.152   0.404   0.956     3.78   2.71        9.7
2026-08-25T07:47:57.6180931Z   funkraiz      shotgun    ik   0.198   0.488   0.976     1.75   3.62        8.6
2026-08-25T07:47:57.6181348Z   caminhoneiro  md97       ik   0.285   0.497   0.907     1.22    6.5        8.4
2026-08-25T07:47:57.6181754Z   raul          deagle          0.191   0.443   0.963      4.2   3.16        7.8
2026-08-25T07:47:57.6182145Z   designer-ux   m4         ik   0.178   0.378   0.769     3.68    2.6        7.3
2026-08-25T07:47:57.6182717Z   motoca-cachorro-loko m4         ik   0.294   0.623   0.978     2.26   6.88          7
2026-08-25T07:47:57.6183233Z   bandeirante   mosin      ik   0.185   0.393   0.869     3.21   2.78        3.7
2026-08-25T07:47:57.6183669Z   microfonildo  m4         ik       0       0       0        0      0          0
2026-08-25T07:47:57.6183897Z
2026-08-25T07:47:57.6184020Z REPROVADOS: 22/62
2026-08-25T07:47:57.6184302Z -> tools/eval/select_inflate.json
2026-08-25T07:47:57.6184484Z
2026-08-25T07:47:57.6184969Z PORTÃO VERMELHO — 22 reprovados, acima do teto declarado de 12.
2026-08-25T07:47:57.6382577Z ##[error]Process completed with exit code 1.


nada fora do normal no meu turno 🕵️

…tival

Item do pack penitenciaria_gelo (chat ph73cszyryt8jreekq64vj4s1x8d66ef),
otimizado no padrão gen-asset (WebP 1024). Centro do festival no gelo.

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
… do molde

- wrapper gelo-galpao permanece (GL2); dentro, placeProp('galpao_festival')
  e as peças procedurais ficam visible=!glb; colisores idênticos (lição 3)
- escala não-uniforme derivada das medidas nativas do GLB: fachada 28,4 m
  cobre os colisores laterais (±14,05), profundidade 14,6 m = águas
  -38,15..-23,55, cumeeira 6,7 m, deck a 0,12 m do chão (render Blender de
  validação pegou um erro de afundamento antes da integração)
- neve (MAT.nevefofa) refeita no browser: cumeeira no topo do Box3 do GLB,
  beirais na altura medida (y=0,045 nativo) com slope derivado — a neve
  procedural esconde junto com o telhado procedural
- userData.molde no galpão (galpao_festival) e no quentão (gelo_quentao);
  GELO_PROPS ganha o slot do galpão

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
…olde + GELO_PROPS + GLB em disco)

Frase do dono (26/08): mapas do usantos low poly sem moldes 3D bons.
Mutante novo --mutante=sem-moldes zera os userData.molde do mundo → GL8
vermelha; sem-galpao não acende colateral (grupo ausente é falha da GL2).
Os 3 mutantes antigos continuam mordendo seus alvos.

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
…inha no FONTE.md

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Kimi Code
@rubenmarcus

Copy link
Copy Markdown
Member Author

USANTOS-R2 · galpão de festival GLB no centro do gelo

O que substituiu: o visual do galpão procedural (caixas + telhado de duas águas) vira galpao_festival.glb (Mint, 4.563 tris, WebP 1024) no browser — galpão junino com treliças de madeira, telhado metálico claro, bandeirolas, salão fechado no fundo e varanda aberta. O wrapper gelo-galpao permanece (GL2); o procedural fica visible=!glb como fallback do arnês; colisores idênticos nos dois mundos (lição 3).

Instâncias e âncoras: 1× galpão em (0, -30,85). Escala não-uniforme derivada das medidas nativas do GLB (deck y=-0,205, beiral y=0,045, cumeeira y=0,372, bbox x ±0,499 / z ±0,485 — lidas do accessor POSITION): fachada 28,4 m cobre os colisores laterais (±14,05), profundidade 14,6 m = águas -38,15..-23,55, cumeeira 6,7 m, deck a 0,12 m do chão. O slope resultante (14,7°) casa com o do telhado procedural (15,9°). Slope do gable validado em render Blender antes de integrar — a validação pegou um erro de afundamento de 4,2 m na primeira fórmula do position.y.

Neve refeita: cumeeira (faixa MAT.nevefofa no topo do Box3 do GLB) + 2 beirais na altura medida (NAT.eaveY) com inclinação derivada do slope — posições sem número mágico, tudo derivado de Box3 + medidas do GLB. A neve procedural esconde junto com o telhado procedural; no arnês o fallback mantém a dele.

Fogueiras: intocadas — 3× gelo-fogueira-* com PointLight 0xff8c3a e flicker continuam verdes na GL3.

Réguas + mutações: cláusula nova GL8 (≥2 moldes Mint registrados: grupo nomeado + userData.molde + GELO_PROPS + GLB em disco — conta galpao_festival e gelo_quentao). Mutante novo --mutante=sem-moldes zera os userData.molde → GL8 vermelha. Vereditos: eval:gelo verde GL1-GL8; sem-fogueira→GL2+GL3, fogo-parado→GL3, sem-galpao→GL2 (sem colateral), sem-moldes→GL8.

Placar dos gates: check:fast 105/105 depois de npm run docs (docs:check + docsautoria verdes pós-commit); syntax, asset-integrity (SHA↔bytes do GLB novo), gltf-validator e props-acervo verdes; pre-push ok (129 s).

Proveniência: entrada galpao-festival-gelo no mint-assets.json (assetId ks7ds6b1…, pack penitenciaria_gelo, finalSha256 real e8d16bfa…) + linha no public/models/props/FONTE.md.

NÃO verificado: captura em browser (proibida nesta frente) — look real 3:2, GPU real, overlap visual do GLB com barracas/fogueira e leitura da neve no LOOK.gelo de crepúsculo. Renders de validação foram Blender headless (iluminação neutra), não o jogo. Desvios conhecidos: colisores finos dos pilares (±13,2) ficam ~0,9 m para dentro das laterais do GLB (±14,2) e o palco procedural (0,7 m) vira plataforma invisível dentro do salão do GLB — ambos herdados da decisão de não tocar nos colisores.

…, barracas de quentão nos cantos, 3ª camada de serra

Dono, 27/08: "o da neve e o mais lowpoly ainda". As 3 gelo-fogueira-* ganham
o molde fogueira.glb (luz pulsante e fumaça ficam no build); 6 postes juninos
tracejam a rota C e as laterais; 2 barracas de quentão fecham os cantos como
cover com neve refeita no telhado (Box3); serra ganha 3ª camada lavada no fundo
(idioma do skyline do ferro_velho). GELO_PROPS ganha os 3 slots de preload.

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
…ta-zerada

A cláusula de moldes agora conta TODA instância com userData.molde (heróis +
kit festa_r3) e exige ≥6 com slot em GELO_PROPS e GLB em disco — mede 13.
Mutante novo zera a lista GELO_PROPS e morde só a GL8; os 5 mutantes seguem
mordidos (sem-fogueira, fogo-parado, sem-galpao, sem-moldes, lista-zerada).

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
…no mint-assets.json + FONTE.md + GLBs

3 entradas com assetId do item do pack festa_r3 (SHA real dos arquivos) e
linha por GLB no FONTE.md. barraca_quentao.glb teve 2 normais degeneradas
corrigidas (Khronos ACCESSOR_VECTOR3_NON_UNIT) antes do registro.

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
…→726 linhas)

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
A barraca nova nos cantos cobriu o ponto das duas vacas (BUG-57); movidas de
(±24,±33) para (±20,±35.5), livres de barraca/fardo/galpão.

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
…eado)

Signed-off-by: Ruben Marcus <rubenmarcus.dev@gmail.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: OpenCode
@rubenmarcus

Copy link
Copy Markdown
Member Author

Revisão r3 — kit festa_r3 ("o da neve é o mais lowpoly ainda")

O que entrou

  • fogueira.glb (Mint, festa_r3) como molde visual das 3 gelo-fogueira-* — PointLight laranja pulsante e fumaça continuam no build (GL3 intacto)
  • poste_junino.glb: 6 postes tracejando a rota C e as laterais (colisor fino, não fecha rota)
  • barraca_quentao.glb: 2 barracas espelhadas 180° fechando os cantos vazios como cover de corpo inteiro, neve refeita no telhado por Box3 (padrão da cumeeira do galpão)
  • Horizonte: 3ª camada de serra mais longe e lavada, fechando os vãos entre as cristas (idioma do skyline do ferro_velho)
  • barraca_quentao.glb chegou com 2 normais degeneradas (Khronos ACCESSOR_VECTOR3_NON_UNIT) — corrigidas antes do registro

Réguas + mutações

  • GL8 estendida: ≥6 instâncias Mint registradas (grupo + userData.molde + GELO_PROPS + GLB em disco) — mede 13
  • Mutante novo lista-zerada (zera GELO_PROPS) → morde só a GL8 ✓
  • Os 5 mutantes seguem mordidos: sem-fogueira→GL2+GL3, fogo-parado→GL3, sem-galpao→GL2, sem-moldes→GL8, lista-zerada→GL8
  • AR3 pegou as vacas dentro do colisor da barraca nova — movidas para (±20,±35.5)

Gates

  • eval:gelo GL1–GL8 ✓ · check:fast 105/105 (442 s) · pre-push ok

Proveniência: 3 entradas no mint-assets.json (assetId do item do pack festa_r3 + SHA real) + linhas no FONTE.md.

NÃO verificado (fora do escopo desta revisão): captura em browser 3:2 — o visual dos moldes no mapa foi medido só no arnês node (procedural de fallback); vento já existia; corvo não entrou — não há corvo no acervo de fauna (public/models/ambient/), confirmado em docs/lore-mapas.md ("corvo de ferro-velho ausente").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human-gameplay Mudança exige revisão humana de gameplay/render/HUD needs-staging Mudança precisa validação integrada em staging target:main PR apontando para a branch main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants