Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
NewsSteam's own announcements and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesNewsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
MoteMancerNewsMonday Musings #57 – Painting with Math
Community

Monday Musings #57 – Painting with Math

MoteMancer · published 8 Jun 2026, 23:38 UTC

All newsPlayers around this dateRead on Steam

I've always been a super math nerd, especially when it comes to color math. I used to say "Math is my paintbrush". While working as an FX artist I used math to shape and sculpt procedural textures like clouds or fire or water to great effect.

And so this week while creating the character customizer, I found out that the color picker I'd come to know so well wasn't a standard thing available in Unity, I had to make one from scratch. I thought today I'd share what that looks like and we can finish by going back to an old friend, the Mana Flare.

UVs are Magical

For the uninitiated, a UV is simply a color gradient that goes from 0-1 in two directions. If you imagine coloring a sheet of paper and wrapping it around your arm, a UV is just that square sheet of paper.

They come in many flavors, and i've written in the past about how to use that information in very clever ways, but for today's trick we're just going to reference the most common two: standard (square) and polar (circular). Both have two axis - x and y; radius and angle.

Our character color picker needs a hue ring, so let's start there. The easiest way to make a ring is to grab a circle and subtract a smaller circle from it. The "Step" function just says:

  • "True past this number" - 1, white
  • "False before that number" - 0, black


The radius value feeds our Step. Once the subtraction is done we end up with a white ring and now we can leverage the V value, If we simply tell V to drive a Hue Rotation, we end up with a perfect rainbow that loops back on where we started. Multiply these two together, and we're home!

The next thing we need is a Saturation Value triangle, which is my interface of choice because it gives the most freedom in the smallest space. Here we're going to leverage a standard UV layout.

Using that same Step function, we can get clever and use the U and V value together to drive the Step rather than a constant value. If we just did U and V straight, we'd get a perfect diagonal line, but we need to make a triangle, so we can divide by 2 to give us some breathing room. Use that same trick on the opposite side and the bottom, multiply them all together again and we get a triangle.

For the color we actually already have everything we need. V - left to right, multiplied by our color gives us a clean gradient there, and U bottom to top is already just a black and white gradient. Linear blend between the two and it maps perfectly to our triangle.

My favorite part about this is its literally all just math, no textures, just numbers, which means its super fast, but also just really clean and elegant. Definitely took me by surprise that there wasn't a built in widget for this, but also it was fun to create one from scratch. Plus I get the benefit of rotating the hue wheel to match the elemental layout of the game. Small touch, but worth it.

Making a Mana Flare

Mana Flare is really just a natural extension of the lines of thought above. It's true that I use textures for the flare itself, but only for the parts in motion. The sphere look, the flat pool, the radial lines all use the same techniques from above to create the shape for the textures to flow inside of.

I won't go into all the super mathy details, but you can recognize a lot of the techniques even from this simple split-shot. There are radial glows, some squashed more than others, there are rings with textures flowing through them. The main ball is a circle with a fresnel edge (basically just whiter at the edge), and then the surface is another squashed circle.

The only real tricky bit there is making the ellipse scale appropriately with the Y height to complete the illusion. There's even a simple Above/Below Step function determining whether the mana liquid is visible, but the ellipse neatly hides the transition so you never see the hard edge.

State of the Build


The v0.5 update is nearing completion. You can play the latest version of it in the Experimental branch right now! I'm probably going to let it bake for a week or so to find extra bugs and bits of polish here and there, but with it comes the largest Performance improvements to date, Character Customization, Achievements, a new Tutorial, and a slew of quality of life improvements.

Lots more to do, and so back to the Lab! 🌿
~CyanAvatar

More from MoteMancer

Other announcements

All news
Community14 Sep 2026Monday Musings #63 – Nice to HavesIt's funny, while working through the Alchemists Journal feature and finding all the ways I want to teach lessons inside the game, many of the nice-to-have features have bubbled to the surface as features worth chasing. Many of these requests have been sitting around for over a year. The Journal gave some of them a way into the game, and once I started pulling on that thread, apparently I had t…Community31 Aug 2026Monday Musings #62 – The Advent of the Alchemist's JournalI have been talking about this feature for literally a year, and today is finally the day to put it in the game. MoteMancer has many unique rules and behavior and systems, and just a lot to learn in general, so naturally one of the things the game needs is a little bit of a guide to help you along the way. I specifically tried to set up the world where both the player's character and the player…Community17 Aug 2026Monday Musings #61 – Multi-Texture ParticlesWhen I was at school for computer animation, we had a saying - "Is it enough to fool the bartender?" The thing about graphics in general is you can spend almost an infinite amount of time making something better and at some point you must surrender your art to your audience. Along the way though, sometimes you find a technique that satisfies your innate need to push just a little further, witho…