Installs into .claude/skills of the current project.
Are you the author of Camera Shake?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-camera-shake)
---
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).