Source: https://shadowfrag.com/blog/small-geometry-big-personality/

# Small geometry. Big personality.

By the SHADOWFRAG developer · Art + performance · Oct 22, 2026 · 3 min read

I refined hats, weapons and effects around shapes you can recognize during a fight. More detail only helped when it made the ninja or the action clearer.

[Twin Castles, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/_astro/60b30cb2727587f9438651a26b189177bddc4c802dae0a2cbf5b97d5bcd327cb.BVfBgQeZ.png)

Actual engine render · Development build · 22 October 2026

Adding more geometry to a hat did not necessarily make it easier to recognize. I kept coming back to the outline: the fedora needed its pinched crown, the ushanka needed to cover the rear corners of the head, and the kasa needed to sit close enough to look worn instead of balanced above the ninja.

Small, deliberate surfaces and clear breaks in color suited the game's world. They also gave me a useful question when reviewing a model: could I recognize the choice without zooming in to see how it was built?

## Seeing the weapon during a fight

The bow showed why a model has to work in context. From another player's camera, its draw needs a recognizable silhouette. In first person, it needs to leave space for aiming. Ultrawide captures exposed stretched arms and an obstructed center, so I treated those as separate presentation jobs. [The bow comparison](https://shadowfrag.com/blog/making-room-for-the-bow/) shows the changes in the actual views.

Other weapons needed their own shapes. I aligned the spinning stars' points horizontally, made [shrapnel grenades](https://shadowfrag.com/glossary/#term-shrapnel) look like handmade fuse bombs, and used a wrapped clay smoke jar for the [shadow grenade](https://shadowfrag.com/glossary/#term-shadow-warp). The different cosmetic models keep the same weapon rules. Choosing a look should not change the combat collision hidden underneath it.

## Giving an event a recognizable effect

A rail trail needs to be visible near the shooter as well as farther along the shot. Arrows and stars need distinct effects, while nets remain free of cosmetic trails. [Spree auras](https://shadowfrag.com/glossary/#term-spree-aura) appear after **five kills without dying**. Their refresh concentrated the designs into bubbles, lightning, orbiting details, halos and blades, giving each a shape to recognize in motion.

Flips, leans and capes animate around the [gameplay hull](https://shadowfrag.com/glossary/#term-hitbox), the collision shape used by the game. They show how the ninja is moving without rotating the [authoritative hit geometry](https://shadowfrag.com/glossary/#term-hitbox) along with the costume. Smoke at both ends of a [shadow warp](https://shadowfrag.com/glossary/#term-shadow-warp) helps connect a departure with its arrival.

The decapitation effect marks a confirmed kill: the body turns to pixel steam and the head launches upward. It does not add a networked ragdoll, where the server would also need to simulate and communicate a falling body's movement.

An isolated preview helps with inspection, but the design also has to survive being seen briefly during a fight. The [arsenal gallery](https://shadowfrag.com/arsenal/) and downloadable avatars use these actual game models. Their appearance can be inspected there; performance evidence needs its own care. Older effect [benchmarks](https://shadowfrag.com/glossary/#term-benchmark) keep their original workload labels, because a measurement of an earlier design does not automatically cover every later revision.

[Back to blog](https://shadowfrag.com/blog/)[Browse the glossary](https://shadowfrag.com/glossary/)

## Request an _invite code._

SHADOWFRAG is opening by invitation. Request a code and receive development updates. [Shadow Council](https://shadowfrag.com/glossary/#term-shadow-council) contributors receive priority when invitations begin.

Enable JavaScript to request an invite code and confirm your email address.

Email confirmation required. Codes will be issued later; a request does not guarantee access. Unsubscribe at any time. [Privacy](https://shadowfrag.com/privacy/)

Confirm your email to join the invitation list. Codes will be issued in a future round; a request does not guarantee access. Unsubscribe at any time.

Anyone can request a code. For [Shadow Council](https://shadowfrag.com/shadow-council/) priority, introduce yourself on Discord with your role, experience, region and time zone. Include examples of your maps or content if you have them.

[Join Discord](https://discord.gg/EHj7rZDNj)
