Skip to content

An AI-generated user interface that analyzes output paths for Flatland environments.

Notifications You must be signed in to change notification settings

helloKep/flatland-path-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

README

This is a user interface generated by Claude.

The purpose is to analyze paths generated by our subnodes pathfinding encoding. When called with the following command:

$ clingo benchmark.lp pathfinding-subnodes.lp --const z=3 --outf=2 0 > results.json

the output might look something like this:

Example output file
{
  "Solver": "clingo version 5.8.0",
  "Input": [
    "benchmark.lp","pathfinding-subnodes.lp"
  ],
  "Call": [
    {
      "Start": 0.000,
      "Witnesses": [
        {
          "Time": 2.968,
          "Value": [
            "global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,n),96)", "path((9,17,n),97)", "path((8,17,n),98)", "path((7,17,n),99)", "path((6,17,n),100)", "path((5,17,w),101)", "path((5,16,w),102)", "path((5,15,w),103)", "path((5,14,w),104)", "path((5,13,w),105)", "path((5,12,w),106)", "path((5,11,w),107)", "path((5,10,w),108)", "path((5,9,w),109)", "path((5,8,w),110)", "path((5,7,w),111)", "path((5,6,w),112)", "path((5,5,w),113)", "length(23)"
          ]
        },
        {
          "Time": 2.968,
          "Value": [
            "global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,w),96)", "path((10,16,n),97)", "path((9,16,w),98)", "path((9,15,w),99)", "path((9,14,w),100)", "path((9,13,w),101)", "path((9,12,w),102)", "path((9,11,w),103)", "path((9,10,n),104)", "path((8,10,n),105)", "path((7,10,n),106)", "path((6,10,n),107)", "path((5,10,w),108)", "path((5,9,w),109)", "path((5,8,w),110)", "path((5,7,w),111)", "path((5,6,w),112)", "path((5,5,w),113)", "length(23)"
          ]
        },

...

{
          "Time": 3.014,
          "Value": [
            "global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,w),96)", "path((10,16,w),97)", "path((10,15,w),98)", "path((10,14,w),99)", "path((10,13,w),100)", "path((10,12,w),101)", "path((10,11,w),102)", "path((10,10,w),103)", "path((10,9,w),104)", "path((10,8,w),105)", "path((10,7,w),106)", "path((10,6,w),107)", "path((10,5,w),108)", "path((10,4,w),109)", "path((10,3,w),110)", "path((10,2,w),111)", "path((10,1,w),112)", "path((10,0,n),113)", "path((9,0,n),114)", "path((8,0,n),115)", "path((7,0,n),116)", "path((6,0,n),117)", "path((5,0,e),118)", "path((5,1,e),119)", "path((5,2,s),120)", "path((6,2,e),121)", "path((6,3,n),122)", "path((5,3,e),123)", "path((5,4,n),124)", "path((4,4,e),125)", "path((4,5,e),126)", "path((4,6,s),127)", "path((5,6,e),128)", "path((5,7,s),129)", "path((6,7,e),130)", "path((6,8,n),131)", "path((5,8,e),132)", "path((5,9,e),133)", "path((5,10,e),134)", "path((5,11,e),135)", "path((5,12,e),136)", "path((5,13,e),137)", "path((5,14,e),138)", "path((5,15,e),139)", "path((5,16,e),140)", "path((5,17,s),141)", "path((6,17,s),142)", "path((7,17,s),143)", "path((8,17,s),144)", "path((9,17,s),145)", "path((10,17,e),146)", "path((10,18,e),147)", "path((10,19,s),148)", "path((11,19,e),149)", "path((11,20,n),150)", "path((10,20,e),151)", "path((10,21,n),152)", "path((9,21,e),153)", "path((9,22,e),154)", "path((9,23,s),155)", "path((10,23,e),156)", "path((10,24,s),157)", "path((11,24,e),158)", "path((11,25,n),159)", "path((10,25,e),160)", "path((10,26,e),161)", "path((10,27,n),162)", "path((9,27,n),163)", "path((8,27,n),164)", "path((7,27,n),165)", "path((6,27,n),166)", "path((5,27,w),167)", "path((5,26,w),168)", "path((5,25,w),169)", "path((5,24,w),170)", "path((5,23,w),171)", "path((5,22,w),172)", "path((5,21,w),173)", "path((5,20,w),174)", "path((5,19,w),175)", "path((5,18,w),176)", "path((5,17,w),177)", "path((5,16,w),178)", "path((5,15,w),179)", "path((5,14,w),180)", "path((5,13,w),181)", "path((5,12,w),182)", "path((5,11,w),183)", "path((5,10,w),184)", "path((5,9,w),185)", "path((5,8,s),186)", "path((6,8,w),187)", "path((6,7,n),188)", "path((5,7,w),189)", "path((5,6,w),190)", "path((5,5,w),191)", "length(101)"
          ]
        }
      ],
      "Stop": 3.016
    }
  ],
  "Result": "SATISFIABLE",
  "Models": {
    "Number": 246,
    "More": "no"
  },
  "Calls": 1,
  "Time": {
    "Total": 3.016,
    "Solve": 0.049,
    "Model": 0.000,
    "Unsat": 0.002,
    "CPU": 2.987
  }
}

The JSON file is parsed to determine and plot the paths uncovered by the solver.


Try out the visualizer by cloning the repository. It is purely HTML and requires no server to run. You can use the provided results and environment files to see it in action. The current version is fixed for environments of size 30 x 30, but will be adjusted in the future.

Instructions

  • Click Browse JSON... and select example/results.json
  • Click Browse Image... and select example/environment.png

Then you can select from all of the available models and see them plotted in real time. If you want, you can hold down CMD/CTRL to select multiple models from the list. Holding down SHIFT will select consecutive models. Click clear to clear your selection.

About

An AI-generated user interface that analyzes output paths for Flatland environments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages