What's new in Companion 8.5?
In development since 2017, Companion 8.5 is the single largest operating system release we've ever had. Like previous odd-numbered point releases, 8.3 and 8.1, this version focuses primarily on long-term architectural improvements meant to ensure that the system features remain scalable.
The largest difference between 8.5 and earlier versions of Companion is the introduction of task management. A microkernel has been implemented, for the first time ever within LSL, which allows the system to reduce the resource usage of infrequently-accessed ("library") scripts by fully suspending their execution by the region host. This reduces script time to zero for hibernating library scripts, and can even eliminate the memory footprint of some libraries if they have not been accessed since the unit last changed regions. Critically, sleeping scripts do not need to be considered during system message-passing, which is a major source of script time usage and grows geometrically as the number of scripts in the system increases.
In 8.5, only a small number of scripts fully take advantage of this library architecture. We will be improving this further in 8.6, when the transceiver module is introduced to centralize the major remaining source of event-driven responsiveness, chat listeners. This means adding more scripts to the total script count, but on the whole, a great deal of functionality can be implemented without a commensurate increase in continuous resource usage. To achieve similar performance, other vendors have been forced to rely on fragile external servers to host solutions, not all of which may be around for the rest of Second Life's already considerable history.
Module hibernation is not a perfectly smooth innovation. Scripts do require some time to awaken when called upon, which can be especially notable immediately after a teleport. These scripts cannot preserve their memory, a problem we have solved through the implementation of the configuration system.
The addition of a centralized settings manager in 8.5 makes querying, updating, and exporting changes to the system's preferences much easier than ever before, and allows application and device developers a consistent API for accessing this information.
The 8.5 HUD now includes a welcome screen, displayed after every OS update. This is an excellent place for newcomers to start and can greatly facilitate the potentially harrowing process of navigating the system's documentation.
Additionally, screen overlay effects have been added, which indicate when the unit is being damaged, repaired, charged, or aroused.
Although the Emotion arousal simulator (TESI) has been in development for quite some time, we made the decision that it should require Companion 8.5 to function, as the script time overhead of its core model was too significant to add onto Companion 8.4's already considerable script footprint. Emotion adds the ability for the unit to experience sexual arousal, accumulated through a suite of body sensors, furniture APIs, and animation monitoring, and to express that arousal via sounds, particles, and triggered animations such as facial expressions. It also enables tracking of cryogenic lubricant levels, augmenting ATOS/E's existing heat management functionality when both are installed.
The last version of ATOS/E compatible with Companion 8.4 was version 12.0.7, and its development has continued since then, seeing more than a dozen releases. Subsequent improvements include air pressure monitoring, automatic shield deployment, TESI cryolubricant support (with different consequences for fan-having vs. fanless controller models), and malfunctions, a richer set of specific breakdowns the unit can suffer as a result of received damage.
See Combat, heat, damage, and repair in the Robot Hardware Handbook for more information on ATOS/E and malfunctions.
Thanks in particular to the new configuration manager introduced in Companion 8.5, devices are better than ever before at using the controller's setup as a unified resource for reading the unit's settings. For example, new versions of our Horns and Handles products are able to use the configuration API to decide where to look for clothing and outfits in the unit's #RLV directory.
By far the biggest focus of feature development in 8.5 is the Chassis Specification Unit, or CSU, an add-on which initially focused on adding the audible facets of working with spinning disc data storage media to the robot, but now includes an ever-expanding list of settings tweaks that can be made to the robot, each pertaining to an aspect of its body rather than its control system. Additionally, the CSU has also gained a lightweight, responsive controls-based AO, which understands all common notecard formats, and can load new notecards via command-line.
You can learn more about the CSU's configuration files from Chassis Specification Settings in the Robot Hardware Handbook.
Module hibernation
The largest difference between 8.5 and earlier versions of Companion is the introduction of task management. A microkernel has been implemented, for the first time ever within LSL, which allows the system to reduce the resource usage of infrequently-accessed ("library") scripts by fully suspending their execution by the region host. This reduces script time to zero for hibernating library scripts, and can even eliminate the memory footprint of some libraries if they have not been accessed since the unit last changed regions. Critically, sleeping scripts do not need to be considered during system message-passing, which is a major source of script time usage and grows geometrically as the number of scripts in the system increases.
In 8.5, only a small number of scripts fully take advantage of this library architecture. We will be improving this further in 8.6, when the transceiver module is introduced to centralize the major remaining source of event-driven responsiveness, chat listeners. This means adding more scripts to the total script count, but on the whole, a great deal of functionality can be implemented without a commensurate increase in continuous resource usage. To achieve similar performance, other vendors have been forced to rely on fragile external servers to host solutions, not all of which may be around for the rest of Second Life's already considerable history.
Module hibernation is not a perfectly smooth innovation. Scripts do require some time to awaken when called upon, which can be especially notable immediately after a teleport. These scripts cannot preserve their memory, a problem we have solved through the implementation of the configuration system.
Configuration system
The addition of a centralized settings manager in 8.5 makes querying, updating, and exporting changes to the system's preferences much easier than ever before, and allows application and device developers a consistent API for accessing this information.
HUD improvements
The 8.5 HUD now includes a welcome screen, displayed after every OS update. This is an excellent place for newcomers to start and can greatly facilitate the potentially harrowing process of navigating the system's documentation.
Additionally, screen overlay effects have been added, which indicate when the unit is being damaged, repaired, charged, or aroused.
TESI
Although the Emotion arousal simulator (TESI) has been in development for quite some time, we made the decision that it should require Companion 8.5 to function, as the script time overhead of its core model was too significant to add onto Companion 8.4's already considerable script footprint. Emotion adds the ability for the unit to experience sexual arousal, accumulated through a suite of body sensors, furniture APIs, and animation monitoring, and to express that arousal via sounds, particles, and triggered animations such as facial expressions. It also enables tracking of cryogenic lubricant levels, augmenting ATOS/E's existing heat management functionality when both are installed.
New ATOS/E functionality
The last version of ATOS/E compatible with Companion 8.4 was version 12.0.7, and its development has continued since then, seeing more than a dozen releases. Subsequent improvements include air pressure monitoring, automatic shield deployment, TESI cryolubricant support (with different consequences for fan-having vs. fanless controller models), and malfunctions, a richer set of specific breakdowns the unit can suffer as a result of received damage.
See Combat, heat, damage, and repair in the Robot Hardware Handbook for more information on ATOS/E and malfunctions.
New and updated accessories
Thanks in particular to the new configuration manager introduced in Companion 8.5, devices are better than ever before at using the controller's setup as a unified resource for reading the unit's settings. For example, new versions of our Horns and Handles products are able to use the configuration API to decide where to look for clothing and outfits in the unit's #RLV directory.
By far the biggest focus of feature development in 8.5 is the Chassis Specification Unit, or CSU, an add-on which initially focused on adding the audible facets of working with spinning disc data storage media to the robot, but now includes an ever-expanding list of settings tweaks that can be made to the robot, each pertaining to an aspect of its body rather than its control system. Additionally, the CSU has also gained a lightweight, responsive controls-based AO, which understands all common notecard formats, and can load new notecards via command-line.
You can learn more about the CSU's configuration files from Chassis Specification Settings in the Robot Hardware Handbook.