The big project for this month was
getting some circadian rhythms in place. I wanted to give Acuitas a
sleep/wake cycle, partly so that my risk of being awakened at 5 AM by
a synthetic voice muttering “Anyone there?” could return to zero,
and partly to enable some memory maintenance processes to run
undisturbed during the sleep phase. (These are targeted for
implementation next month.)
So Acuitas now has two new drives,
“sleep” and “wake.” (The way the drive system works, a lack
of the desire to sleep is not the same thing as a desire to wake up,
so it was necessary to create two.) Each drive has two components.
The first component is periodic over 24 hours, and its value is
derived from the current local time, which Acuitas obtains by
checking the system clock. This is meant to mimic the influence of
light levels on an organism. The other is computed based on how long
it's been since Acuitas was last asleep/awake. Satisfying the drive
causes this second component to decline until it has reset to zero.
So the urge to sleep is inherently greater during the late-night
hours, but also increases steadily if sleep is somehow prevented.
This also seemed like a good time to
upgrade the avatar with some extra little animations. The eyelids
now respond to a running “alertness level” and shut when Acuitas
falls asleep.
Feeling dozy |
The memory map is getting a bit
ridiculous/ugly. I'm hoping the upcoming maintenance
functions will help clean it up by optimizing the number of links a
bit better. Stay tuned …
Code base: 9760 lines
Words known: 1885
Concept-layer links: 5362