Skip to content
Small library for visualizing gridworlds by generating svgs styled and animated by css.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
gridworld_vis
.gitignore
LICENSE
README.md

README.md

gridworld-visualizer

This is a small library for visualizing gridworlds by generating svgs styled and animated by css. The api of gridworld-visualizer centers around the gridworld function.

gridworld(n=10, actions=None, tile2classes=None, extra_css="") -> SVG

which takes in the dimension of the gridworld (currently assumed to be a square n x n), the sequence of actions (currently support moving in the cardinal directions), and a function

tile2classes(x: int, y: int) -> str

which given a grid cell (x, y) returns a string for its type. Currently, the default styling supports, "water", "recharge", "dry", "lava", and "normal". As these types just correspond to css classes, one can add additional styling using the extra_css option.

Example

Below we generate the gridworld from at the top of the page, (originally from Vazquez-Chanlatte, Marcell, et al. "Learning Task Specifications from Demonstrations.").

import gridworld_visualizer as gv


def tile2classes(x, y):
    if (3 <= x <= 4) and (2 <= y <= 5):
        return "water"
    elif (x in (0, 7)) and (y in (0, 7)):
        return "recharge"
    elif (2 <= x <= 5) and y in (0, 7):
        return "dry"
    elif x in (1, 6) and (y in (4, 5) or y <= 1):
        return "lava"
    elif (x in (0, 7)) and (y in (1, 4, 5)):
        return "lava"

    return "normal"

actions = [gv.E, gv.N, gv.N, gv.N, gv.N, gv.W, gv.W, gv.W]
svg = gv.gridworld(n=8, tile2classes=tile2classes, actions=actions)
svg.saveas("example.svg", pretty=True)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.