Nanobots, Murder, and Other Family Problems

Chapter Sat 06/25 09:01:07 PDT



Sat 06/25 09:01:07 PDT

DEBUG INTERFACE INITIALIZED

“Today we’re going to work on coordinating a group of nanobots moving together,” Father says, rotating one of his large monitors to give me a better view. He’s so thoughtful like that. “Let me get the emulator screen zoomed in on a batch.” He moves his mouse and presses a few keys. “Good. There.”

A group of a few dozen soccer ball shapes center themselves on the screen. The view is zoomed in enough that I can make out the individual grippers and jet ports on each one.

“When you want to select a group, you’ll need to perform a selection command. With real bots, you’ll use your eyes to draw a box in three-space around them, but for this exercise I’ve already selected this group for you. You’ll be able to interact with the bots in the group collectively as if they were a single object. You understand?”

I nod as I check my console, popping a window in the bottom right of my field of vision to display the information about the bot group. It shows me a count of the bots in the group, some location information, and a summarized display of the status and controls for them.

“Go ahead and take a look at the functions available for the cluster of bots.”

I poke one of the buttons on the bot window with a glance and a list of functions pops up in part of the frame.

“Got it,” I tell him. “Looks like the commands are different than with a single bot.”

“Indeed. Go ahead and see if you can work out the command to get your group to form up into a sphere formation.”

I play around in the menus until I find a Set Formation button. I eye-click it and get a list of formations I can assign them. I pick the Sphere option. The simulated bots on the screen swirl into motion, arranging themselves into a tight ball-shaped grouping. I notice a slider control next to the formation selector and test it out. The bots expand out, away from each other. I slide it back the other way and they mash themselves together until they’re almost touching.

“Excellent,” Father says. “Notice how they form their sphere centered wherever their collective center of mass is. I’ve put safeguards in the clouds for you and your siblings to prevent you from accidentally coalescing a formation inside of an object or person, but you’ll want to get in the practice of making sure your formations are safely placed. One day, we’ll take those training wheels off and you’ll need good habits in place.”

“Got it,” I reply. Those safety precautions are a relief. I wouldn’t want to accidentally hurt someone with the bots once I get them.

“Once the group is in a formation,you’ll see some additional functions available. Look at those now.”

I pop back to the function list for the cluster and sure enough, a new set of commands for movement in various directions are listed there.

“Yeah, got ’em,” I report, “And I see up and down commands along with the left and right controls. We’re moving in three-dimensional space now?”

“Good observation. Yes, the two-dimensional practice we did last time will be our last adventure in flatland. You’ll practice moving these bots in all three dimensions, as that’s how you’ll interact with them in the real world.”

“Makes sense.” I’ve played enough video games where you have to move and think in three-space that I’m not worried about that part once I get the controls down.

“Great. Let’s run through some simple exercises like we did with the single bot. I’d like you to write another function, but this time instead of a circle, I’d like you to give me a function that moves the formation in an upwards spiral.”

I code up and execute the function, improving from the last one I showed him. I want him to see how hard I’ve been working on improving my programming skills. I watch the bots in the emulator screen comply with the commands in the code.

“So much improvement!” Father exclaims, stepping around from behind his workstation to stand next to me and gesturing at the screen. “You’re doing so well! Nice, smooth loops in a clean spiral, angling upwards. You’ve come so far, Noah.”

“Thanks.”

“Now, the direction commands are all relative to the formation’s current heading. If it’s moving toward you instead of away from you, you’ll want to reverse your right and left.” He glances at me and I nod in acknowledgement. “For the benefit of some of your siblings who were struggling with the controls, we added a somewhat simplified guidance system. For that one, just engage the Vision Follow command and the cluster will do its best to follow your center of vision. Go ahead and give it a try.”

I test that out and get the bots moving wherever I look on the screen. This controller has a slider too, that lets me push the bots farther away from me or bring them closer. I stop the cluster once I have a good grip on how to get the bots to go where I want and switch back to the standard controls. Thinking in three dimensions isn’t that hard, and this is good practice.

Father puts me through the paces of a few more exercises and then steps out of the lab for a bathroom break, leaving me with the emulator. This is surprisingly fun. I can’t wait to do it in real space with real bots. I go to town on the programming, creating a routine that splits the group and forms several sphere formations, then sets them moving in coordinated patterns. I have them revolve around a fixed point in concentric orbits, then have the orbits shift up and down along a line to form interleaving helical afterimages as I accelerate them. I think this is something like what Marc was trying to do that first day when he showed off his bots. I can’t figure out how he had so much trouble with such a simple exercise.

I’m in the zone, kicking out code, and creating magic when Father returns.

“Very impressive indeed, Noah!” he exclaims, seeing the twirling bots swarming in the emulator. “I hadn’t imagined you could learn so much so quickly. You are truly a remarkable young man!”


Tip: You can use left, right, A and D keyboard keys to browse between chapters.