period-doubling route to chaos! No problem. It’s because I use a nonlinear formula to damp the jitter out of direction_angle. I use a preset constant called FEEDBACK_DAMPER. But the damping’s not working anymore. We’re getting the opposite of damped feedback; we’re getting feebdack, right, Russ? Ha, ha!” I was feeling hackish and manic. “Well, that’s just because the Adze is different from the Veep. All I need to do is tweak the FEEDBACK_DAMPER value. Kwirkey Debug, I want to edit the constant definitions file. And put away that stupid eraser.”
I changed FEEDBACK_DAMPER from 0.12 to 0.13.
“Compile, reset, and run.”
This time, instead of overavoiding Baby Scooter, Squidboy locked into a death spiral that wound around and around Baby Scooter until Scoot’s geometry was churned into crooked fnoor.
“I thought you said you had the Adze code wired,” snarled Russ. “You fucking loser.”
“It’s a chaotically sensitive system,” I cried. “I tweaked it specially for the GoMotion Veep with genetic algorithms. I’m not surprised it isn’t working yet. Even though the Veep and the Adze use the same Y9707 chip, their sensors and effectors are different in hundreds of ways. They have different bodies.”
“Your control algorithms seem to be very sensitive,” said Sun Tam. “You change the second digit of FEED- BACK_DAMPER and Squidboy kills Scooter instead of Walt?”
“Yeah,” I said. “And maybe the value halfway in between will work. Say 0.125. But maybe not. Maybe FEEDBACK_DAMPER needs to be 0.124. The only way to find the right number is through trial and error. And even if you get one parameter right, you might need to change it again after you change some other parameter. You’re searching a multidimensional chaotic phase space.”
“So you’re telling us that robot software is impossibly difficult to program,” said Russ flatly. He looked sad. “And the Adze is never going to work.”
“It’s not impossible,” I said. “It’s just that we need to use genetic programming to find the right parameter settings. That’s why I made Sun Tam put up 256 Our American Homes. We’ll use genetic programming and everything will be fine.”
“How?” asked Sun Tam.
“We put a Squidboy instance into each of the 256 Our American Homes, and select out, say, the 64 parameter sets that give the best behavior. Then we replace the worst 64 sets with mutated clones and crossovers of the genes in the top 64,” I explained. “And you leave the 128 medium-scoring guys alone, or maybe mutate them a little. On the next cycle some of the middle guys might do better than average, and some might do worse.” Russ was starting to grin. I was getting over. “So that we don’t have to monitor it, we give all the Squidboys some simple machine-scored task. To begin with, the task will be walking into the living room without killing anybody. And once it can do that, we try a different task. The process works, I promise you.”
“Let’s help him get it started, Russ,” said Sun Tam.
“Gronk,” said Russ.
We got it happening late that afternoon, and by the next morning, the parameters were such that Squidboy could follow Dexter around the Christensens’ house without breaking anything or hurting anyone-at least in the default Pat-sitting. Walt-sleeping. Dexter-roving. Scooter-teething configuration. Now we needed to look for more difficult configurations.
I got Ben to come and see what we’d achieved so far. He was favorably impressed, though still very worried about our being ready for the product rollout scheduled for Tuesday, May 26, a mere two weeks away. Sun Tam got Ben to allocate wireless pro-quality cyberspace headsets for the three of us. We continued working in front of the Sphex, but now instead of the bogus shared look-through Abbott wafer display, we had true immersion.
We set up a virtual office down on the asphalt next to the Our American Homes and began spending almost all our time there together in our tuxedos. I was an idealized Jerzy in shorts, fractal shirt, and sandals- my tux that I’d bought from Dirk Blanda. Sun Tam’s tux showed a lanky gunslinger. Russ was a pagan hobbit with shades, a nun’s habit, and seventeen toes.
Every now and then I’d look up into the cyberspace sky and see the spherical green-and-gray Netport node up there like a low-hanging harvest moon. Sometimes, when the hacking was getting old, I’d feel trapped. I was stuck in a parking lot by a field of tract homes in a boring part of San Jose. I would wish I could fly away to see what the GoMotion ants were doing, out there in the Antland of Fnoor. People said there were still GoMotion ants loose in cyberspace, but we weren’t seeing any of them at West West.
To continue improving the Adze code, we began making the Our American Home test beds more difficult. We began breeding for bad Our American Homes. Each Our American Home setup could be described by its own parameter set, and we began selecting out the 64 Our American Homes that got the worst scores for their Squidboys, and at the same time singling out the 64 Our American Homes whose Squidboys did the best. And then we’d replace the parameter sets of the mellow 64 homes with mutated clones and blends of the parameter sets of the 64 worst Our American Homes, and let the 128 homes in the middle ride along for another cycle.
After a few days of this, the Our American Homes were pretty bizarre-like imagine your worst nightmare of a subdivision to live in. In one house you could see Pat throwing dishes at Walt. In another, Dexter was taking a crap on the front steps. In another, a flipped-out Pat was in the kitchen setting the drapes on fire. In another, drunk Walt hunted the robot with an axe. In another, Scooter was sitting on the ledge of a window holding a carving knife. And in each of the bad Our American Homes, a desperate Squidboy did his best to fit in. Some of the Squidboys did better than others, and those were the ones who would get bred onto the genes of the Squidboys who lost.
By that Friday, it began looking like the Adze could work. We let the gene tweaker run for the whole weekend, and on Monday, May 18, Russ, Sun and I floated in cyberspace looking fondly down at 256 Squidboys doing good things in all the different Our American Homes. We were the gods of this ticky-tacky little world, this sinister Happy Acres.
“It’s time for me to do my thing,” said Sun Tam. “Let’s hit the Rubber Room, guys.”
I was scared; I was always especially scared when we started up one of these powerful robots with code that I’d worked on. I knew all too well how fallible I was. Another worry was that the GoMotion ants might infest Squidboy and take over-even though we’d been sure to copy the incomprehensible encrypted machine language bits of a GoMotion ant lion into his code.
Ben went into the Rubber Room with us and picked up the remote On/Off switch as before. If Squidboy killed one of us, it would be West West’s responsibility, and it would be Ben’s job to take the fall.
As before, the Rubber Room held a practice staircase, soft mannequins of the Christensen family, a fridge, a Plexiglas door, and some furniture. Dome-head Squidboy was there, squatting down on his wheels. We waited behind the big waist-high table by the door while Russ stuck our new program disk into Squidboy. Russ ran back to us and Ben pressed the On button.
The robot hummed into life, scanned around the room, and said “Hello Squidboy.”
“Squidboy,” said Ben. “Go to the fridge and get Perky Pat a bottle of Calistoga water.” Squidboy smoothly turned toward the refrigerator and started rolling. When he got to the movable Plexiglas door, he slowed and used his tentacle to open it.
“Good going,” murmured Sun Tam.
Squidboy got the bottle out of the fridge, went back through the door, pulled up next to the seated Perky Pat doll, unscrewed the bottle cap, and set the bottle down on the table next to her.
“All right!” I said.
“Squidboy, go up and down the stairs,” said Ben. Squidboy made it up the stairs okay, but-he fell over on his way down.
In every program there’s one killer problem that tortures you the most. In the case of Squidboy it was stairs. I was damned if I could get them right. As the coming days wore on, I began to realize that my having gotten the parameters right for the Veep so quickly had been blind luck. No matter how long I genetically evolved the Squidboy stair-climbing procedure, the damn machine always ended up falling over on the way down. Fortunately the Rubber Room had a soft floor.
I spent the next four days driving around inside Squidboy, single-stepping with all the variables in watch mode, perturbing and reevolving the parameters, and trying new hand-coded ideas for the staircase procedures. I was hacking all the time and thinking about nothing but the software… dreaming of bytes, xors and shifts, of memory allocations and data structures. On Friday, I came up with a desperate brute-force measure that made Squidboy climb stairs quite a bit more slowly than Studly had, but Squidboy stopped falling over.