The Four Pillars of a Mind

A scholarly look at why memory, personality, emotional intelligence, and motivation are the four things that make a character — or a person — feel real. And what cognitive science has to say about each of them.


The tavern keeper problem

Picture two tavern keepers. Both are characters in a game you’re playing, or in a novel you’re reading, or in an immersive world you’ve been invited to spend time in. Both pour you a drink, both take your coin, both say hello when you walk in.

The first one does nothing else. Every time you walk into the tavern, she gives you the same greeting. She doesn’t remember you. She doesn’t react to whether you saved her village last week or betrayed it. She has no opinions about the weather, no complaints about her back, no idea that the barrel of ale in the corner is cursed. She is, functionally, a vending machine for drinks wearing a person-shaped costume.

The second tavern keeper is also a character. Also pours drinks, also takes coin, also says hello. But she remembers that you helped her daughter recover from the fever six months ago, and her greeting is warmer because of it. She’s naturally cautious — when you ask about the cursed barrel, she weighs the question for a moment before answering, the way a cautious person would. She notices that you look tired tonight and pours you something a little stronger without being asked. And she wants something for herself, too, underneath all of this — she’s been saving up to buy out her brother-in-law’s share of the tavern, because she thinks she could run it better alone, and that ambition colors everything she does.

You know which tavern keeper is the memorable one. You also know which one is more expensive and time-consuming to build, whether you’re writing her as a novelist, scripting her as a game designer, or configuring her as an AI system. The question I want to walk through in this post is why. Why does the second one feel like a person and the first one doesn’t? What are the specific ingredients that have to be present for a character to cross the line from puppet into presence?

The answer, it turns out, is that there are exactly four of them. And they are not a designer’s preference. They correspond to four dimensions that cognitive scientists have been studying in humans for the last fifty years — four specific things the human mind uses to recognize another mind as being real. When you design a character who has all four, you’re not faking personhood. You are activating the parts of your audience’s brain that are already wired to respond to personhood, and those parts don’t care whether what’s in front of them is digital, printed, or physical.

I call these the Four Pillars. Let me walk you through each one, and the research that makes each of them load-bearing.

Continue reading The Four Pillars of a Mind

From Cute Little Helper to Civilizational Threat

How the public’s feelings about artificial intelligence changed more in five years than in the previous fifty — and why the next five years are ours to shape.


Remember when AI was adorable?

I want you to go back in your head to about 2015. If you had an Amazon Echo in your kitchen, you probably thought of Alexa as a friendly little helper. You said “Alexa, what’s the weather” and she told you. You said “Alexa, play some jazz” and she did. When she misheard you — which was often — it was funny, not threatening. She was, in the cultural imagination of the mid-2010s, a charming household appliance. Something between a toaster and a butler. Nobody thought Alexa was going to take over the world.

Continue reading From Cute Little Helper to Civilizational Threat

The Pokémon Go Body Count

What happens when an augmented reality layer forgets you still have a body in the real world — and what the first big real-world dataset has to teach the next generation of builders.


The summer the world went outside

In July of 2016, something happened that the technology industry had been predicting for about twenty years and had nonetheless completely failed to prepare for. A small company called Niantic released a free mobile game called Pokémon Go, which used your phone’s camera and GPS to overlay little cartoon monsters onto the real world. To catch them, you had to physically walk to where they were. To battle in a “gym,” you had to physically stand near the gym’s real-world location. The game’s slogan was Gotta Catch ‘Em All, and within a few weeks, what felt like half of the developed world was outside trying.

If you were old enough to remember it, you remember the surreal sight of grown adults wandering through public parks at midnight in groups of twenty, their faces lit up by phone screens, occasionally letting out a cheer when somebody caught a rare one. People who had not voluntarily been outside in years were suddenly logging miles on foot. Cardiologists wrote excited articles about it. Public health researchers ran studies on the activity benefits. For a brief shining moment, it looked like augmented reality might single-handedly solve the obesity crisis.

And then the other dataset started coming in.

Continue reading The Pokémon Go Body Count

Unity Junior Programmer Mission Create With code Unit 3 – Sound and Effects

3d Metaverse Application Development Workspace

The objective of this fun project was to program an endless side-scrolling game with a fast-paced runner style of gameplay. While completing this prototype, I learned how to completely transform the experience of my projects using sound effects and music. I also learned how to create dynamic endless repeating backgrounds that are critical for a side-scrolling gameplay experience.  The final piece of work was learning how to use particle effects such as splatters and explosions. They seem to make the game so much more satisfying to play!

Continue reading Unity Junior Programmer Mission Create With code Unit 3 – Sound and Effects

Unity Junior Programmer Mission: Create With code Challenge 2 – Program a dog to play fetch

My custom Unity development layout

I used array and random number generation skills to program this challenge where balls are randomly falling from the sky and you have to send your dog out to catch them before they hit the ground. To complete this challenge, I was required to make sure the variables are assigned properly, the if-statements are programmed correctly, the collisions are being detected perfectly, and that objects are being generated randomly.

Give the game a try in your browser at https://meta.dwdenney.com/challenge2/

Continue reading Unity Junior Programmer Mission: Create With code Challenge 2 – Program a dog to play fetch

Unity Junior Programmer Mission: Create With code Unit 2 – Basic Gameplay

My Custom Layout in Unity Development Environment

In this mission I undertook the bold task to program a top-down game with the objective of throwing food to hungry animals. To make things even more outrageous, the wild hungry animals are stampeding toward you and you must feed them before they can run past you. While working on this I became much more familiar with some of the most important programming and Unity concepts, including if-then statements, random value generation, arrays, collision detection, prefabs, and instantiation. I programmed a “Spawn Manager” to handle the spawning of random animals at random intervals. By completing this project I have demonstrated the ability to program a basic game complete with launching projectiles and maneuvering the player to keep the game alive.

https://meta.dwdenney.com/unit2/

Continue reading Unity Junior Programmer Mission: Create With code Unit 2 – Basic Gameplay

Unity Junior Programmer Mission: Create With code Challenge 1 – Program an Airplane to fly

I was challenged to use the skills learned in the driving simulation to fly a plane around obstacles in the sky. I was required to get the user’s input from the up and down arrows in order to control the plane’s pitch up and down. I also needed to make the camera follow alongside the plane in order to keep it in view.

Continue reading Unity Junior Programmer Mission: Create With code Challenge 1 – Program an Airplane to fly

Unity Junior Programmer Mission: Create With code Unit 1 – Start your 3D Engines

In this Unit, I programmed a car moving side-to-side on a road, trying to avoid (or hit) obstacles in the way. In addition to becoming familiar with the Unity editor and workflow, I learned how to create new C# scripts and do some simple programming. By the end of the Unit, I was able to call basic functions, then declare and tweak new variables to modify the results of those functions.

Continue reading Unity Junior Programmer Mission: Create With code Unit 1 – Start your 3D Engines

Beyond Responsive Web Design – Creating Content for Different Devices

Screen shot of bonus content on large screen.

There are some things that should not be handled with responsive design. For example I’m creating bonus content for devices with very large screens. Using responsive design, the common technique is to load this bonus content into the dom but not show it for certain size screens. However this still takes its toll on the load time and would impact performance of the device since it would still have the content in its memory.

For the bonus content,  I am going to display  a large graphic image only on devices that meet a certain height and width requirement. This can be easily accomplished without a third party plug in or framework using standard JavaScript.

Screenshot of content on tablet

Content on Samsung Galaxy Mobile Phone

The JavaScript behind this is surprisingly simple and cross browser compatible. I have tested successfully on  PC’s with new ie and firefox, surface pro, android 2.2 up, ipad, iphone, blackberry playbook, older  imac with safari.

var screenheight=screen.height;
var screenwidth=screen.width;
if(screenwidth>=1280 && screenheight >= 1000){
// execute my sweet js script to display bonus content.
}