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: