Sylvain Fargier (EN-SMM-APC)

image/svg+xmlENGINEERING DEPARTMENT

28/11/19

Animated Graphics

Aka "SCADA Web" project

Introduction

image/svg+xmlENGINEERING DEPARTMENT
  • Graphically render and animate a system state
    • ​Mechanical plans, synoptics views, logical ...

 

  • Allow user interactions with it
    • Control, link to historical data ...

Introduction: Goals and Purpose

image/svg+xmlENGINEERING DEPARTMENT
  • At CERN: there's a need for this kind of technology

 

  • Externally: a lot of solutions exists
    • Some commerical ex: Archer, a couple of open-source ex: FUXA

Introduction: State of Art

image/svg+xmlENGINEERING DEPARTMENT
  • No ideal solution
    • ​Always rely on a specific technology or language (Node, Python ...)
    • Often not modular and hard to re-use
    • Licenses and business models (see CERN MALT)
    • Community support and stability

 

  • All relies on a common mature technology​: SVG 1.1

Introduction: State of Art

image/svg+xmlENGINEERING DEPARTMENT

Tech proposal: Stateful SVG

image/svg+xmlENGINEERING DEPARTMENT
  • Add a logical state to an SVG
    • Describes its relations with the graphical state
    • Directly embedded within the SVG file

 

  • Similar to what SMIL and events provides
    • But at a logical level (in opposition to the graphical level)
    • The SVG knows how it should be rendered according to its logical state

Tech proposal: Stateful SVG

image/svg+xmlENGINEERING DEPARTMENT
  • Separates design job from software development
    • ​The designer decides how his graphics should animate and be displayed
    • No programmatic skills needed to create a system view

Tech proposal: Stateful SVG

image/svg+xml ENGINEERING DEPARTMENT

Example: SVG demonstrating logical state versus graphical state

Project

image/svg+xmlENGINEERING DEPARTMENT
image/svg+xmlENGINEERING DEPARTMENT
  • One "Stateful SVG" specification

 

  • Four work packages:
    • Stateful SVG Engine
    • Stateful SVG widget editor
    • DataSources Plugin
    • Stateful SVG binding tool

Project: Overview

image/svg+xmlENGINEERING DEPARTMENT
  • Modular
    • Separate "core" business from applicative part
    • Implement additional features as "plugins"
  • ​Declarative
    • Separate the description from the operation
    • Focus on what not on how
  • Portable
    • Additional metadata on a self-contained SVG file
    • Can be implemented with any framework (Java, Qt, Web ...)
    • With different animation technologies (SMIL, CSS3, JS, C++ ...)

Project: Guidelines

image/svg+xmlENGINEERING DEPARTMENT
  • Stateful SVG Specification
    • Describes the declarative metadata domain specific language
    • Relies on SVG 1.1 and other techs yet to be defined (XML, Json ...)
    • RFC style writing and reviews

​​

  • Purpose
    • To not write an additional un-specified/un-documented animation engine !
    • To agree on a common format

Project: Stateful SVG Specification

image/svg+xmlENGINEERING DEPARTMENT
  • Stateful SVG Engine

​​

  • Purpose
    • To load Stateful SVG metadata
    • To Reflect state changes on the graphical layer by running animations

Project: Stateful SVG Engine

image/svg+xmlENGINEERING DEPARTMENT
  • Stateful SVG widget editor
    • Web based metadata editor
    • Does not replace SVG editors, focuses on animations
    • Designed for basic animations (translations, rotations, scaling ...)

​​

  • Purpose
    • To ease and fasten widget development
    • To lower the tech learning curve

Project: Stateful SVG widget editor

image/svg+xmlENGINEERING DEPARTMENT
  • DataSources plugin
    • An extension to the Stateful SVG specification
    • First version designed for web-browsers
    • Should be URI/URL based, granting access to several middleware (CMW, C2MON, DIM ...)

​​

  • Purpose
    • To link Stateful SVG with devices
    • To have standalone self-contained SVG apps

Project: DataSources plugin

image/svg+xmlENGINEERING DEPARTMENT
  • Stateful SVG binding tool
    • Drag and drop tool to instantiate and place widgets
    • First version designed for web-browsers
    • Editor for the DataSources metadata

​​

  • Purpose
    • To ease and fasten final views design
    • To lower the tech learning curve

Project: Stateful SVG binding tool

Questions ?

image/svg+xmlENGINEERING DEPARTMENT

Animated Graphics

By Sylvain fargier

Animated Graphics

Animated Graphics Introduction

  • 260