Synoptic is a client-server system for graphical data representation, similar to ACNET Lex SA, EPICS EDM, DESY JDDD, and such. In addition to providing a modern look and feel, it can display “live” images in conventional web browsers using very low bandwidth and, in most cases, without the need in additional software. The project was developed at Fermilab by Tim Bolshakov and Andrey Petrov, and is currently maintained by Accelerator Controls Department.

The main parts of the system are shown on the diagram below. Displays are created and modified in the Builder Application, which is a custom graphical editor implemented in Java. It is normally used on client machines via Java WebStart. Display definitions are stored either locally or in the Central Repository as XML files. In a simplest case, displays can be executed by the Web Engine. The user opens a read-only Synoptic display as a web page in a regular browser. Upon request, the engine makes up a layout of the display, initializes the data acquisition, and periodically generates SVG images. JavaScript code in the browser polls the server every 2-3 seconds for new graphical data and passes it to an embedded renderer. In most cases, each two successive images generated by the web engine are pretty similar, so it is sufficient for the client to receive incremental updates. This makes the data transfer very efficient.

To set data from Synoptic displays to the control system, the display needs to be opened in the Viewer Application. The data acquisition tasks in this case are handled locally, and the display's image is rendered directly on the application's canvas. Unlike the web engine, Viewer may only be used from certain locations within the lab for security reasons.

Architecture Diagram
The Synoptic Architecture

The main advantages of Synoptic are:

At this time Synoptic talks to Fermilab Accelerator Control System through the ACNET protocol.

System Requirements

Web Interface

In order to render live Synoptic displays properly, a browser must support Scalable Vector Graphics and JavaScript. The following table shows which browsers on which operating system can do this:

  Internet Explorer Firefox Chrome Safari Opera Android Browser
Windows Requires SVG plugin Yes Yes   Yes (presumably)  
Mac   Yes Yes Yes Yes  
Linux   Yes        
iPhone & iPad       Yes No  
Android   Yes     Yes No

(Assumed reasonably up-to-date versions of software)

Java Runtime Environment

Builder and Viewer require Java SE 6.

Using Synoptic Displays

All the existing displays can be opened in a web browser from the Synoptic home page. The displays are organized in a tree. Top level items (such as /Cryo) are the most used. Working examples can be found in /Demo. Miscellaneous displays created before 2008 are located under /Legacy. When you click on a link, the display shall appear in a separate window within a few seconds. If it doesn't, make sure that JavaScript is enabled and that your browser supports SVG. You may submit problems and suggestions to

Prior to running the applications, make sure that the right version of Java is installed. To start the Builder application, use Launch Builder link on the project home page. In order to edit displays in the central repository, you must have a Controls CVS account and work from an on-site location. Otherwise, existing displays can only be opened via Download & Open... menu, and may not be stored back. For more information on the CVS use in Synoptic, refer to this wiki articleRestricted. There is also a complete on-line referenceRestricted on all available display components.