Shake the camera when the player takes damage or on impacts for visual feedback.
Scanned 5/27/2026
Install via CLI
openskills install verekia/r3f-gamedev---
name: camera-shake
description: Shake the camera when the player takes damage or on impacts for visual feedback.
---
# Camera Shake
Shake the camera when the player takes damage or on impacts for visual feedback.
## Technique
Instantly offset the camera's rotation on X (pitch) and Z (roll) axes, then smoothly return to the base rotation using exponential decay in `useFrame`.
## Key Concepts
- Store rotation offsets in a module-level object for external triggering
- Use exponential smoothing: `(target - current) * (1 - Math.exp(-speed * dt))`
- Apply offsets to `camera.rotation.x` and `camera.rotation.z`
- Call `shake(intensity)` from anywhere to trigger the effect
## Usage
```tsx
const shake = (intensity = 0.05) => {
rotationOffset.x = (Math.random() - 0.5) * intensity
rotationOffset.z = (Math.random() - 0.5) * intensity
}
// In useFrame:
rotationOffset.x += addSmoothExp(rotationOffset.x, 0, 10, delta)
camera.rotation.x = rotationOffset.x
```
## Related Skills
- `smooth-interpolation` - Exponential smoothing formula details
---
This skill is part of [verekia](https://x.com/verekia)'s [**r3f-gamedev**](https://github.com/verekia/r3f-gamedev).
No comments yet. Be the first to comment!
SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.