SONIC (Solver Over Network Interface Card) is a distributed computing manager and Viewer for Calcium. It allows the user to spread the Calcium computations for any number of skeletons over as many client computers as are available. It is composed of two separate programs - one that runs as a server and communicates with Cortex to receive streamed marker data; and the other is a client that runs on separate workstations to do the distributed solving.
Using SONIC, any number of skeleton computations can be defined and distributed among the SONIC clients. Cortex streams the identified marker data to the SONIC server via the SDK2 communication interface. SONIC takes each of the MarkerSets and, using the definitions found in the configuration file, distributes each MarkerSet to a client. Each client solves for a result and sends it back to the server which assembles all the results and passes them along to the Talon plug-ins.
Note that the use of SONIC clients is optional. The SONIC server uses itself to solve models just like any client. A general rule of thumb is that one CPU can be used to solve two standard character models so the first client is necessary only if three or more models are to be solved.
The SONIC Viewer enhances SONIC in three main ways:
- 1. It provides a graphical interface so that hand editing configuration files and the Windows command line are no longer needed.
- 2. It adds the ability to stream data from the SONIC Viewer as an SDK2 data stream. This allows SONIC to be added and removed from the data pipeline with complete transparency to any Talon plug-ins that are used.
- 3. It provides the ability to apply calculated skeleton data to 3D models and render them in a 3D environment. Additional computers and software packages are no longer needed for rendering animated characters using motion capture data.