ViSTA is a toolset for tracing and visualizing the solving process of Answer Set Programming (ASP) programs.
ASP is a declarative programming paradigm used for knowledge representation and combinatorial problem solving. Modern ASP solvers use a CDNL (Conflict-Driven Nogood Learning) algorithm — similar to CDCL in SAT solving — to search for answer sets. ViSTA lets you step through that internal solving process visually, making it useful for understanding, debugging, and educational purposes.
The pipeline consists of three stages:
- Grounding —
gringoconverts a high-level.lpprogram into a flat.aspifformat. - Conversion —
converter.pynormalizes weighted/cardinality rules into plain rules (.conformat). - Tracing —
cdnl-tracer.pyexecutes the CDNL search and records each solving event as a JSON trace. - Visualization — The web-based visualizer renders the trace interactively.
The online visualizer is available at: https://tomoyay1622.github.io/ViSTA/
- Python 3.8+
- gringo / clingo (for grounding
.lpfiles) - A modern web browser
Clone this repository:
$ git clone https://github.com/tomoyay1622/ViSTA.git
$ cd ViSTANo additional Python packages are required.
Step 1. Ground the ASP program with gringo:
$ gringo example/test.lp > example/test.aspifStep 2. Normalize rules with converter.py (converts weighted/cardinality rules into plain rules):
$ python3 converter.py example/test.aspif > example/test.conStep 3. Run the CDNL tracer to obtain a solving trace in JSON format:
$ python3 cdnl-tracer.py example/test.con > example/test.jsonStep 4. Open the online visualizer and paste the contents of example/test.json to explore the trace interactively.

