← abrir o modelo · todas as entradas si3d
DualSense modelado do zero em three.js: R2 com gatilho adaptativo (motor e curva de força ao vivo), atuadores hápticos, raio-X, desmontagem em camadas e troca branco ↔ Midnight Black.
Construído em código (three.js) com o kit teardown de elvarofficial e whaleyxbt (MIT), pela skill si3d. Publicado 2026-11-09T13:09-03:00.
# Controle PS5 · dsh DualSense (controle do PS5) modelado do zero em código three.js (kit teardown, regime mecânico/objeto). Sem malha pronta, sem Tripo, sem asset de jogo. ## Medidas tiradas da referência Escala: foto frontal Midnight Black (Commons), 1280 px de largura e controle com 160 mm → 0,129 mm/px. As medidas ficam no topo de `kin.js`. - Contorno visto de cima: 18 pontos lidos da foto e espelhados; pontas das empunhaduras a ±70 mm, 108 mm de profundidade (ficha: 106 mm). - Touchpad 61 × 28 mm. Analógicos a ±24,5 mm, capa Ø 19,6 mm. Botões de face e direcional em cruz de ±10,7 / ±8,5 mm, centro a ±47,5 mm. Botão Ø 9,7 mm. - PS a 44 mm do topo, mudo a 53 mm, microfone a 61 mm, grade do alto-falante 6 + 5 furos. Create/Options a ±35 mm. - Empunhaduras caem ~30 mm (altura total 66 mm). L2/R2 a ±49 mm, curso do R2 de 21°. - Cores: asas brancas por fora, frente preta com microtextura △○✕□, botões em acrílico transparente com símbolo cinza; barra de luz azul em volta do touchpad. ## Como foi construído - Casca: campo de distância (contorno 2D + perfil vertical das empunhaduras + bloco do touchpad + poços dos analógicos), poligonizado por MarchingCubes (120³ no PC, 96³ no celular) e cortado em 3 peças que se encaixam como no controle real: frente preta, asas brancas e carcaça traseira. As emendas são arredondadas por smax. - Peças torneadas (analógicos, botões), extrudadas (touchpad, direcional, gatilhos L2/R2, L1/R1) e tubos (barra de luz). Microtextura, serrilhado do analógico e símbolos saem de CanvasTexture procedural. - Por dentro (raio-X e desmontagem): placa, bateria 3,65 V / 1560 mAh, alto-falante, dois atuadores hápticos (bobina de voz com massa que vibra) e motores com engrenagem setor atrás de L2/R2. - Uma entrada move tudo: a jogada, um ciclo de 4 s em `kin.play(T)`. O R2 passa por mola, zona de resistência (o motor empurra e a engrenagem acende), estalo com rajada háptica e tremida do corpo, e solta. Painel (curso, ângulo, força, corrente do motor, curva força × curso, hápticos E/D, analógicos) lido do mesmo estado. Os valores de força e corrente são um modelo ilustrativo, não medição da Sony. - Modos com `<button>`: Jogar, Gatilho R2, Hápticos, Raio-X, Desmontar, Remontar, Cor (branco ↔ Midnight Black) e Tour. Tour automático de 44 s com cursor; clique, toque, arrasto, roda ou tecla assume o controle; após 25 s parado, o tour volta. Arrastar gira, a roda e a pinça aproximam. No celular em pé, o painel vira uma linha só e os botões ficam em 3 colunas de 48 px. ## Reaproveitado - Kit teardown (MIT): build.mjs, capture.mjs e a estrutura do `cessna-shared/live.js` (tour com cursor, takeover, IDLE de 25 s), reescritos para este modelo. Nada copiado de outras entradas si3d. ## Rodadas de revisão 1. Tour inteiro em folha. Corrigido: costuras serrilhadas (corte duro → smax), microtextura forte demais, L1/R1 flutuando acima da casca, sombra cortada (câmera de sombra pequena), hápticos saindo da casca e vista do R2 encoberta pela empunhadura. 2. Lado a lado com a foto de cima e a de 3/4 branca. Proporção, posição dos botões, touchpad e barra de luz batem. Corrigido: botão PS preto brilhante demais e ponta da empunhadura curta; a ponta ganhou 2 mm. 3. Vista de trás contra a foto traseira e vista do R2 refeita, com o motor, a engrenagem e o gatilho legíveis. Folha final sem defeito novo. 4. Celular: o controle estava pequeno na tela em pé; aproximado (distância × 0,6). ## Teste (testar.mjs, fila si3d, RTX 4070 Ti SUPER) Local: PC a 58,7 fps e celular 390×844 a 60 fps, 123 draw calls, 0 erros de console. Os 8 botões mudam a tela e o arrasto gira, nos dois. Público (https://dino.symbiose.si/si3d/controle-ps5-dsh-20261109-1221/): HTTP 200, PC a 59,3 fps e celular a 60 fps, 123 draw calls, 0 erros. Os 8 botões mudam a tela e o arrasto gira. ## Limites honestos - Modelado por código: não tem a costura fina entre as peças, a textura da pega nem o relevo dos ícones gravados atrás (SONY, normas). A frente usa microtextura procedural, não a real. - A curvatura da casca é aproximada (perfil analítico + SDF). Vista de lado, a barriga é mais reta que a do controle real. - Logotipo PS oficial omitido de propósito (marca). O botão leva as letras "PS". - O interior é esquemático (posições plausíveis, não um teardown medido). - Celular testado só por emulação no Chromium.