Freya Holmér Profile picture
⭕ I made Shapes & Shader Forge 🔥 shader sorceress 🎨 artist 📏 math influencer 💜 twitch partner 📡 ex-founder of @NeatCorp banner: @YO_SU_RA
Benjamin Nossin Profile picture Fire Profile picture Steeeve.uasset Profile picture Ihor Zvieriev🇺🇦 Profile picture Max Xue Profile picture 5 subscribed
Mar 18 25 tweets 4 min read
"do you do performance first or last when programming?" sets up a misleading false dichotomy

there are valid questions around when and how to consider performance when writing code - but it's not about "first" or "last"

(thread) "do you do code readability first or last?" is a weird question, because most people understand it's a consideration throughout

every piece of code you write should be mentally checked for a bunch of things in the back of your mind, not like, obsessively, just, ambiently!
Feb 26 15 tweets 3 min read
if you're going through burnout, here are the two most important things I learned at rehab:

1. physical activity is much more important than exercise

a 10 min walk every day is significantly more effective for burnout recovery, than 1 hour of intense workout once a week so, when it comes to physical activity, this is the order of importance:
• frequency
• duration
• intensity
Feb 10 18 tweets 6 min read
I know it depends on art style etc but,

high frequency contrast like this, from pure white to pitch black, of both background elements and foreground elements, gives me art direction failure/school project/asset flip vibes

a short thread on visual contrast 🧵

Image
Image
looking at this scene by highlighting high-frequency noise, can you see how there's no distinction between the player path and the surroundings?

pretty much the only thing that pops is the character, because their design is less noisy, making for a visual oasis Image
Dec 6, 2023 11 tweets 4 min read
ok how the heck do you make a generalized miter join for n planes in 3D space?

I think I've boiled it down to finding some sort of best-fit generalized orthocenter of the spherical polygon convex hull formed by the face normals, but that seems like,, a lot

(thread) for two normals, hardcoding it is relatively easy (code/math below)

for three normals, you can just find the intersection of the miter plane/point normals, because they converge at a single point (green lines in the .gif above) code for miter joins that read:  // using trig: float angle = Mathfs.AngleBetween( a, b ); float beta = angle / 2; Vector3 dir = ( a + b ).normalized; Vector3 miter = dir / MathF.Cos( beta );  // without trig: Vector3 dir = ( a + b ).normalized; float x = Vector3.Dot( a, b ).ClampNeg1to1(); Vector3 miter = dir * ( Mathfs.SQRT2 / MathF.Sqrt( x + 1 ) );
Sep 17, 2023 15 tweets 5 min read
alright, a thread with my first impressions of @godotengine, let's see how this goes screenshot of a selected cube in godot @godotengine the Y axis is very shy and likes to hide every now and then
Sep 15, 2023 4 tweets 1 min read
a few of us unity insiders just had a meeting with some of the leadership at Unity

we're under NDA, so I can't share details of what was discussed

but, I got a tiny glimmer of cautious hope restored

I'm happy they were willing to talk frankly, and take the time to listen I will continue to push on two points:

1. retroactive TOS/monetization changes are completely unacceptable, this is why trust was broken, irreparably for many. Any big changes to monetization should only apply to future versions of unity. not retroactively
May 30, 2023 23 tweets 6 min read
therapist says I need to go out more so I'm gonna go on my stupid walk for my stupid mental health

as a compromise I'll also be livetweeting the experience in this thread, hope you're excited Image i crossed a road omg Image
May 30, 2023 6 tweets 1 min read
I wonder how much discourse is spawned of like

person A considers "game developer" to mean "someone who contributed to a game's development"

person B considers "game developer" to mean "a programmer who contributed to a game", because to them, "developer" is means "programmer" like, I don't think person B is legitimately dismissive of the contributions of non-programmers, it's just that the word "developer" means something else in their circles
May 29, 2023 4 tweets 1 min read
"just leave twitter"

the thing is, there's no place that has the same diversity of audience and reach as this place yet. this is where all my friends live, where I've been thriving for a decade, and it takes a huge amount of work to rebuild an audience elsewhere if you're using twitter mostly as a place for you and a few select friends to share things and hang out, then all of you migrating somewhere else together makes a lot of sense, but for creators like me it's much much harder to justify
Apr 13, 2023 4 tweets 1 min read
today I told my therapist why I don't think I have autism - I have a pretty good understanding of social interaction, so I lengthily explained all my strategies for reading others, and the deliberate work I put into how I come across, but it just reinforced her assessment ;-; I guess it's a rite of passage to just assume "everyone does this", to then have your therapist tell you that "no, most people don't actually have to do that", and being genuinely surprised at the kind of superpowers you must have to not have to constantly do this
Apr 10, 2023 9 tweets 2 min read
came across a neat term recently

"audience capture" - the feedback loop when you start catering and validating your audience, neglecting what you want to do or say, in favor of what your audience wants

I think this is an increasingly important thing to be aware of as a creator it's something I've been struggling with in phases, especially as my income depends on an audience liking what I do, but I've never had a word for it until now
Mar 16, 2023 7 tweets 2 min read
the rampant misinformation on social media, and the advent of AI, has made me realize technological progress is not always good or neutral

it can also be actively detrimental to the things we care about and love in life there's a special kind of, deep, ambient dread I feel about AI

it's like seeing a virus running rampant, eroding authenticity and trust in human communication, seeing all creative spaces flooded with mindless creations, displacing humanity

..and then seeing people celebrate it
Mar 7, 2023 16 tweets 6 min read
transform gizmo pre-orders are now open!! 🎉

get your own lil snap-fit assembly kit!
👉👈 handedness agnostic
🔄 positive rotation direction markers
↔ move objects irl
🖨 janky 3D print vibes
🐱 may contain cat hair

ko-fi.com/s/b0ab71b134
photos of all 4 different transform gizmo desk toy variants, pastel vs vivid, short vs long there's a pretty limited amount for sale, so please don't get more than like 4 per person!

this was the initial stock:
200 🌹 viv long
200 🌹 viv mini
50 🌸 pst long
100 🌸 pst mini

the storefront shows current amount left for each of them
Mar 6, 2023 6 tweets 1 min read
feeling pretty overwhelmed and demotivated with the amount of options and things to keep track of for sending things internationally through postnord

so many things are so separated when all I want is one page to enter all the info and print all the labels I need like oh there's a batch label printing service for regular printers like I have, great!

but that's only for the shipping label, it doesn't include the customs declaration

and the customs declaration page is entirely separate and doesn't seem to have batch operation support
Dec 28, 2022 7 tweets 2 min read
I think part of why derivatives are hard to understand the first time you learn about them, is because they're introduced in 1D instead of 2D

the derivative is just the velocity of any given function! to be more precise, given a function f(t):

f(t) = position at time t
f'(t) = velocity at time t
f''(t) = acceleration at time t
f'''(t) = jerk/jolt at time t
Nov 25, 2022 5 tweets 1 min read
fuck it, I did the math, swizzle your quaternions (w,x,y,z) why not

(-x, w, -z, y) is 180° around X
(-y, z, w, -x) is 180° around Y
(-z, -y, x, w) is 180° around Z btw those are "local space"/intrinsic rotations, here are the "world space"/extrinsic rotations:

(-x, w, z, -y) is 180° around world X
(-y, -z, w, x) is 180° around world Y
(-z, y, -x, w) is 180° around world Z
Nov 25, 2022 5 tweets 1 min read
my big takeaway studying quaternions a little closer as of late, is that interpreting them as a 4D object is a red herring they make a lot more sense when you think of them as a special encoding of an angle-axis model with special multiplication rules, or, as rotors in the framework of geometric algebra
Oct 31, 2022 6 tweets 2 min read
blender first impressions thread! (as a maya user)

1. it's super hard to see what the heck is going on when you parent objects using the default parenting method

child objects have some sort of hidden (??) offset based on their relation when parenting this offset seems to be completely hidden in the UI

basically, both transform and delta transform can be at (0,0,0), and yet the object is neither at (0,0,0) world space, nor at the parent position

what is that offset? *who knows* I couldn't figure it out and neither could chat
Oct 28, 2022 7 tweets 3 min read
the four most common 3D rotation representations this type of axis-angle form is also know as a rotation vector, where the magnitude represents the angle, and the axis represents the axis to rotate around

sometimes the axis and the angle are stored separately in 4 numbers (x,y,z,angle)
Oct 27, 2022 4 tweets 1 min read
I wish I felt more comfortable responding "I don't know" to support questions I feel this pressure to be some sort of all knowing deity who has to either already know the answer or figure out every problem every person has on every platform
Aug 14, 2022 4 tweets 1 min read
okay haha holy buckets

Material.SetInt() allocates a *huge* amount of memory, and yet it isn't marked as deprecated (as of 2021.2)

its inline doc says it's deprecated, but it doesn't have the obsolete attribute 💀

and why was a function added, instead of fixing the original? it looks like it's related to a change in 2021.1, where unity got support for proper integer shader properties

prior to this, they were floats under the hood, and somehow, this means, allocations, somewhere, along the way