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
5 subscribers
Aug 18 4 tweets 3 min read
I can no longer recommend people apply to @FuturegamesEDU, the school where I've been teaching at, after a number of things have come to light

I talked to several students last night who've described a school in complete disarray and disregard for their students, absolutely unrecognizable from what I remember back when I was a student in 2010

• there have been multiple cases of courses running completely without a teacher, because they couldn't find one in time, or because the teacher asked for too much money

• the animation/vfx students have not had any animation or vfx courses after a whole year. for context, students go to futuregames for about 2 years. but they have learned a little bit of after effects and mocap tech, I guess

• they also didn't get to participate in the cross-disciplinary game projects, which, in my opinion, is one of the most important things you (used to) get to do at futuregames

• when they inquired about all this the animation/vfx students were told the course was for animation and vfx in cinema, not for games, which means they were either lied to before they joined, or while they were there, as there was no indication of this in the marketing material before they joined, nor at the time they were told this

• once the students tried to self-organize into something more useful, asking if they could watch lecture recordings from the other disciplines and classes, they were *denied*, which is absolutely wild to me. as a result, some students have started passing around recordings on their own,, which, what the heck, why do they have to do this??

(on a tangent, this makes me glad I've specifically asked them ahead of time to let me publish my lectures publicly)

back when I was at FG, there were two groups of students, game design and 3D art, about 18 students each, at a single location in Stockholm

but now I'm hearing there's classes with 40 students, with 12 separate educations you can apply to, across 6 locations in sweden alone, and they're apparently now expanding to warsaw as well

I have to wonder why the heck are they expanding when they are stretched so thin they are effectively transparent and have no ability to find or pay teachers

yesterday one of the students told me they don't even have a teacher yet for the upcoming shader course, which is starting tomorrow :)

FutureGames hasn't reached out to me, by the way, so they either lost the people who had contacts within the industry, or lost their record of past teachers, or maybe my $50/h was too expensive for the, now multinational, company

they've clearly shifted gears into trying to grow as much as possible, with a complete disregard for its students, which is such a shame because FG used to be a really really good place, with teachers actively working in the industry, but is now regarded as one of the worst. it's so frustrating

I'll see if I can do something for the shader course next week for the students regardless, they deserve better than this @FuturegamesEDU ok just heard that they do have a teacher for the shader course next week at least thank god
Aug 11 4 tweets 1 min read
"you can't debug print shaders" oh yeah? well check this shit out

that's right, a whole ass view matrix, served directly from the GPU I'm using the R1 single-channel 1bpp 2D texture format for this one an image of pixel digits, along with code that reads: static uint dBits[5] = { 	3959160828, 	2828738996, 	2881485308, 	2853333412, 	3958634981 };  float DrawDigit(int2 px, const int digit){ 	if (px.x < 0 || px.x > 2 || px.y < 0 || px.y > 4) 		return 0; // pixel out of bounds 	const int xId = (digit == -1) ? 18 : 31 - (3 * digit + px.x); 	return (dBits[px.y] & 1 << xId) != 0; }
Jul 26 6 tweets 2 min read
you've heard of sine and cosine

now get ready for uh squine and cosquare source code. source math? idk

desmos.com/calculator/r0i…
screenshot of the equations in the linked desmos graph
Mar 24 5 tweets 1 min read
there's something hauntingly beautiful about using vscode, an electron app, basically a browser, running v8, a js engine, to launch node, a server running v8 as a headless browser with js, which compiles my typescript code into js, for other people to run js in their browsers it's, deeply cursed, but also, the fact that my IDE, my build step, and my audience, are all running js engines, and so that any js plugin I get or make, could potentially run in all three of these, plus serverside if I wanted to, is pretty neat and/or terrifying
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