{'fraction_non_alphanumeric': 0.015784586815227482, 'fraction_numerical': 0.0, 'mean_word_length': 5.304093567251462, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Simulation visualization through dynamic instrumentation

The goal of the instrument composition system is to allow a simulation user to dynamically create instruments as a simulation executes. Instruments can include graphical displays, data collectors, and debugging aides. Instruments are made up of small building blocks which can be easily combined into larger, more complex instruments. Through the use of an attribute server, the actors and instruments in a simulation can interact without direct knowledge of each other. Instead, each actor publishes the attributes which it has available. An instrument subscribes to the attributes in which it is interested, and is notified whenever the value of one of these attribute changes. An instrument can also publish attributes for use by other instruments. Since the attribute server is distributed, the publisher of an attribute need not execute on the same machine as the subscriber. This allows CPU intensive data visualization to execute on separate machines from the simulation, minimizing the impact on the simulation.