question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Animation Support for Traces

See original GitHub issue

Goals and Motivation

The Animation module is a TLA+ module that provides operators that serve as the basis of a simple vector graphics description language, as well as the ability to animate TLC execution traces. The current instructions for using this module are described in the linked Github repository. The goal is to integrate the functionality of the Animation module with TLC and the Toolbox, so that animation traces can be generated without impacting model checking performance, and so that animations can be easily viewed directly inside the toolbox. An animation trace would be automatically generated by TLC and opened in a web viewer pane in the Toolbox when a trace violates an invariant, analogous to how the Error Trace Explorer works. Using TLA+ itself as a graphics description language will be easier and more natural for existing users of TLA+. They will not need to learn a new language or framework to create animations of their specifications.

Design Ideas

We can add a new flag (e.g. --animationSpec) to TLC that takes as a parameter a user’s “animated spec” expression, call it AnimSpec. AnimSpec contains the same variables as an original spec, but adds auxiliary variables that track animation related state. It is not necessary for this animation related state to be tracked during the entire model checking procedure. Currently, when TLC finds a violating error trace, it does not have access to all states of that trace. It only has the fingerprints of each state. For error trace exploration, TLC already re-constructs the full state of each step in an error trace. If a user wants to view the animated error trace, then during this re-construction process, TLC can use AnimSpec instead of the original specification. This will produce the animation for that specific error trace. Since AnimSpec adds auxiliary variables, we will want these variables to be ignored by using a “view”, so that the state fingerprints generated during animated trace generation are identical to the original fingerprints. Once TLC generates the animated trace, the generated HTML/SVG string can be copied into a standard HTML template, which can then be opened in a web viewer pane in the toolbox.

Note that If the evaluation of AnimSpec fails during trace re-construction, TLC can always fall back to the standard Spec, print an error message, and not produce or open the animation.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:23 (23 by maintainers)

github_iconTop GitHub Comments

1reaction
will62794commented, May 10, 2019

From what my current implementation looks like, I think the changes should be relatively isolated, without much risk of breaking any existing functionality. Ideally the changes will have no impact for users if they don’t choose to use the feature. I will keep the “blast radius” in mind, though, as I continue to work on this.

0reactions
lemmycommented, Sep 16, 2019

@will62794 As per last week’s discussion, I consider this feature done.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Traces show little to no movement when animating in ...
The traces flow without a problem in Autodesk CFD but when animated, they typically show no movement, have very rapid movement, or freeze....
Read more >
Advanced Tracing Animations - Flow
Learn advanced tracing animation techniques, by coordinating the tracing of shapes by aligning their timing and rotations in this Dribbble animation tutorial.
Read more >
Watch Blender Plugin Make Animated PCB Traces (and More)
The plugin then uses a path finding algorithm to determine how these paths could grow from an origin point, and stores the relevant...
Read more >
How to edit artwork in Animate using Image Trace
Open or place a raster image in your Animate document. · With the placed image selected, do one of the following: Choose Object...
Read more >
Traces: Portraits of Resistance, Survival and Resolve
Traces : Portraits of Resistance, Survival and Resolve is an animated documentary film trilogy telling three inspiring stories from the time of the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found