Rune Skovbo Johansen
Creative Programmer & Designer


On the difference between individuals and statistical trends

Aug 8, 2017 in
There has been a lot of controversy recently about the famed Googler and his anti-diversity manifesto. He wrote a lot of things that there is good reason to be upset about. Yet, the one thing people have kept referring to as the main issue is something he did not actually say.

Edit: Doug Binks (@dougbinks) pointed out, "The manifesto states that Google has lowered the bar for diversity candidates, thus implying his fellow colleagues may be sub-par." That is correct and I stand corrected on that one. Original post below.

But first, a diversion to a fictional funfair with two fun houses, the Little Funhouse and the Eerie Funhouse.

The Little Funhouse is a popular workplace and employees must be at most 160 cm tall (5 feet and 3 inches) in order to function well and not get injuries. There is a test for it in the hiring process. The place is a popular place to work among both women and men. There are however more women than men who work there, and the company is doing various things to try to attract more men.

One day one of the employees, Mary, declares: "It's natural that there's more women than men, because men are on average taller than women." Her statement is generally accepted as uncontroversial. No one takes her statement as an insult towards the men working at the Little Funhouse, because a casual glance around the place easily reveals that they are just as short, and thus just as qualified, as the women there. This is how they were able to get the job in the first place, after all.

In the neighboring Eerie Funhouse, employees need to have good hearing because the work involves reacting to subtle audio cues. There is a test for it in the hiring process. More women than men work here too, and the company is trying to do something about that as well.

One day one of the employees, Patricia, declares: "It's natural that there's more women than men, because men on average have worse hearing than women." This statement creates a stirring. It's not clear that Patricia's statement is based on sound science, but this is not what gets people worked up the most. Rather, the fact that it's not clearly evident from a glance that the men working at the company have as good hearing as the women gets people all confused about the nature of Patricia's statement. Word gets around, and people both inside and outside the company takes Patricia's statement to mean that she claimed her male colleagues had worse hearing and were less qualified for the job. Patricia tried to argue that that is not what she had said, but it was to no avail and she was fired.

Did Patricia make a claim that her male colleagues were unqualified for their jobs? Of course not; not anymore than Mary made a claim that her male colleagues were unqualified. Making a statement about trends and averages at the population level is entirely separate from making a claim about people at a workplace who went though a hiring process and were already found qualified for the job. This is regardless of whether the claims about the population level trends and averages are correct or incorrect. It's not a statement about the people working at the company in either case.

We return from our fictional examples to the real world. Our infamous Googler was clearly concerned people might mistake claims about the population as being claims about individuals, and so he included this clarification early on in his manifesto.
When addressing the gap in representation in the population, we need to look at population level differences in distributions. (...) Many of these differences are small and there’s significant overlap between men and women, so you can’t say anything about an individual given these population level distributions.
He also included the word "on average" whenever he made statements about men versus women.

Yet, the responses were all primarily about how he had indicated that his colleagues were unqualified for their job.

From So, about this Googler’s manifesto. by Yonatan Zunger
What you just did was incredibly stupid and harmful. You just put out a manifesto inside the company arguing that some large fraction of your colleagues are at root not good enough to do their jobs, and that they’re only being kept in their jobs because of some political ideas.
From Erica Joy's piece
Employees cannot feel included in an environment where their peers believe they aren’t worthy of being there and will say so, freely. Employees cannot advance in a system that is built on peer evaluation if their peers believe them to be fundamentally sub-par.
And lastly, from Google's CEO Sundar Pichai, justifying the firing of the employee:
To suggest a group of our colleagues have traits that make them less biologically suited to that work is offensive and not OK.
To make statements about population wide statistical trends, no matter if these are true or false, is not the same as making statements about one's colleagues who have all been deemed qualified already through the hiring process. Claiming that this is the case is as absurd as if Mary from our fictional Little Funhouse were being criticized for claiming her male coworkers were unqualified just because she said that men in the overall population on average are taller.

There are plenty of things to be upset about in the Googler's manifesto, from claims based on questionable or outdated science, and what appear to be made up claims, to calls to de-humanizing a company culture. And for those reasons I'm not agreeing with him at all. But the misunderstanding is bigger than just this current controversy, and going forward we do need to be able to tell the difference between claims about statistical trends and claims about individuals if we want to be able to have intelligent debate about diversity and not just fetch our pitchforks at any given opportunity.

If anything I have written is ill-informed, misleading or offensive, please let me know so I can correct it. Thanks.
Read More »

July update: Trials and triumphs of whips and levers

Here's the latest updates on the development of my Vive VR game Eye of the Temple.

For the past several months I've been working on improving the whip I prototyped last year. In the last post, I showed how it could grab levers, but there were a lot of issues and the whip and lever didn't exactly look pretty. Now see what it looks like now:

This feels really good to use now. It didn't get to this point without a lot of issues on the way though.

The whip

A bit of background on how the whip is implemented in broad strokes. Using physics joints etc. quickly turned out infeasible when I did the prototype last fall. Instead, I’m keeping track of positions and velocities of “links” in arrays in my own scripts and doing very custom simulation with lots of tweaks and workarounds. Collisions with level geometry works by doing sphere-casts, one per whip link per frame, which is around 30.

There's special logic that makes the stick of the levers "sticky" and "unsticky" at specific times, which aids the behavior, but the way the whip curls around the stick (or fails to curl, sometimes) is still driven by the regular simulation apart from that. For all other surfaces, there's no special logic. It uses the sphere-cast based collision avoidance I mentioned above.

I should say there's a glaring issue in my collision approach which isn't shown in the video, which is that collision fails against moving surfaces, such as the moving platforms. I'm not quite sure if I want to solve that, because it's going to add tons of complexity to the code, while probably also degrade performance significantly. I've chosen to ignore this for now, since there's no lack of other things that need to be done that are more critical.

The lever

The lever has caused me all kinds of problems. Doing a lever that works properly, particularly for VR, is apparently a complicated problem. I made a video about my woes here:

I found out that levers could be made to avoid sliding out of their joints given three criteria are met:

First, the collider of the lever handle must not overlap with any other colliders in the world. The tricky thing here is that it's not easy to see that overlapping colliders might affect the handle, since the handle is firmly locked in place. But they do affect it in very non-obvious ways. So I ensured the handle collider doesn't overlap with any other colliders.

Secondly, the rigidbody must have its position set to locked.

Thirdly, the center of mass of the rigidbody must be overwritten in script to be set to the pivot that the handle should rotate around. Unfortunately, this leads to another problem. Sometimes the lever handle would get completely stuck, in which case no amount of forces would make it move one bit. After some experimentation, this seemed to happen if the handle is exerted to forces while the connected rigidbody (which is kinematic) simultaneously move. (Some levers in my game sometimes get moved around.) I worked around this by disabling the rigidbody position locking at strategic times and then reenabling it again. This seemed to fix the issue.

Polishing it up

After I had gotten most of the technical issues resolved, I set out to create proper 3d models for the whip and lever to replace the simple cylinder placeholders I had before.

And as the last step, I added the ability for the whip to be rolled up (which it now is by default). The whip is still fully simulated while rolled up, which is what gives the rolled up whip its nice juicy appearance. There's no animation or pre-canned movements involved in the whip at all.

The transition where the whip gets rolled up is done by pulling at specific segments of the whip towards a specific point on the handle. This happens to also be how the whip remains rolled up in general.

In the video I do a little upwards flick and then the whip rolls up. This is purely "role playing" though. The rolling up is actually triggered just by pressing a button on the controller. ;)

If you've been following the development of Eye of the Temple, does the whip related gameplay change how you view the game? What do you think it adds to it?
Read More »