Skip to content

Ship real first-person Deagle viewmodel + site favicon - #38

Merged
yassinsolim merged 1 commit into
mainfrom
feat/real-deagle-viewmodel-favicon
Jul 2, 2026
Merged

Ship real first-person Deagle viewmodel + site favicon#38
yassinsolim merged 1 commit into
mainfrom
feat/real-deagle-viewmodel-favicon

Conversation

@yassinsolim

Copy link
Copy Markdown
Owner

What & why

Two things the game was missing:

1. The real downloaded Deagle now shows in first person

The Sketchfab model ("Desert Eagle | First Person Animations" by 1Matzh) is a broken skinned export: its gun meshes are authored ~15,000 units away from the hands at an incompatible scale, so their skinning renders them off-screen — which is exactly why only the arms showed before. The arms and the Weapon bone, though, are perfectly fine.

Fix: extract the two clean gun parts (body + slide), drop the broken skinning, and rigidly bolt them to the animated Weapon bone. A per-frame camera-space orientation lock keeps the barrel pointing cleanly forward while the gun still rides the bone's idle sway + fire recoil. The bulky/broken arm meshes are hidden for a clean gun-only viewmodel that still plays the authored equip/idle/fire/reload clips.

  • WeaponViewmodels.ts: replaced the procedural Deagle with the real GLB via a new GunAttach path (mesh extraction, hideOthers, lockOrient/camRot). The AWP path is unchanged and still renders correctly.
  • GLB recompressed to 12 MB (gltf-transform resample + webp textures), down from the raw 211 MB download.
  • Restored the Sketchfab attribution for the Deagle in the in-game menu credits + README.

2. Site favicon

Replaced the default Vite icon with an orange/black crosshair favicon.svg matching the menu theme, and set the document title to WebStrafe — Surf · Bhop · Frag.

Verification

  • Tuned + verified the viewmodel through the real ViewmodelRenderer (same FOV/lights/camera mount as in-game): the Deagle reads clearly as a Desert Eagle, sits in the lower-right, barrel forward.
  • AWP viewmodel confirmed unregressed.
  • npm run ci green: typecheck + 132 tests + production build all pass.
  • Favicon serves 200 image/svg+xml; game boots with 0 console errors.

The downloaded Sketchfab Deagle ('Desert Eagle | First Person Animations'
by 1Matzh) is a broken skinned export: its gun meshes are authored ~15000
units from the hands at an incompatible scale, so their skinning renders
them off-screen — which is why only arms showed before. The arms + Weapon
bone, however, are fine.

Fix: extract the two clean gun parts (body + slide), drop the broken
skinning, and rigidly bolt them to the animated Weapon bone. A per-frame
camera-space orientation lock keeps the barrel pointing cleanly forward
while the gun still rides the bone's idle sway + fire recoil. The bulky/
broken arm meshes are hidden for a clean gun-only viewmodel that still
plays the authored equip/idle/fire/reload clips.

WeaponViewmodels: replace the procedural Deagle with the real GLB via a
new GunAttach path (mesh extraction, hideOthers, lockOrient/camRot). GLB
recompressed to 12MB (gltf-transform resample + webp). AWP unchanged.

Also add an orange/black crosshair favicon (replacing the default Vite
icon) and set the document title.
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
webstrafe Ready Ready Preview, Comment Jul 2, 2026 4:50pm

@yassinsolim
yassinsolim merged commit 65a62e9 into main Jul 2, 2026
3 checks passed
@yassinsolim
yassinsolim deleted the feat/real-deagle-viewmodel-favicon branch July 2, 2026 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant