Skip to content
Create beautiful diagrams just by typing mathematical notation in plain text.
Haskell TypeScript Emacs Lisp TeX Logos Shell Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Temporary production image that includes necessary packages (#247) Jun 26, 2019
.github Added PR template and script to generate docs Jun 20, 2018
.travis Added travis CI config file and scripts #83 Jun 5, 2018
assets
docker [versioning] Embed `getVersion` result in emitted SVG via optional pr… Jul 5, 2019
docs [interface] added Pending expressions in the backend and handle them … Jun 23, 2019
examples [docs] recovered nested.sub Jul 1, 2019
penrose-modes [docs] added library to the cabal build config; created Penrose names… Jun 25, 2019
react-renderer [versioning] Change version stringification Jul 8, 2019
scripts [docs] added version option to the binary; refactored tests Jun 25, 2019
src/Penrose added getVersion to the API Jul 3, 2019
test [docs] added version option to the binary; refactored tests Jun 25, 2019
.dockerignore [docker] Initial attempt at a reasonable docker compose setup Mar 14, 2019
.gitattributes [fix] seems that github-linguist expect `=true` for marking vendored … Oct 12, 2018
.gitignore [docs] Change directory names for docker containers Jul 1, 2019
.hlint.yaml [docs] added library to the cabal build config; created Penrose names… Jun 25, 2019
.stylish-haskell.yaml [docs] added library to the cabal build config; created Penrose names… Jun 25, 2019
AUTHORS [parse-style] added intersect functions Jun 14, 2017
ChangeLog.md [function-sub] Refactor into modules, and directory clean up Jul 12, 2017
Dockerfile.circleci Temporary production image that includes necessary packages (#247) Jun 26, 2019
LICENSE [parse-style] added intersect functions Jun 14, 2017
Makefile [interface] Dockerfile modifications for new workflow; Shapes render … Jun 20, 2019
README.md [circleci] Replace Travis badge with Circle Mar 13, 2019
USAGE.txt [docs] added version option to the binary; refactored tests Jun 25, 2019
docker-compose-dev.yml [versioning] Embed `getVersion` result in emitted SVG via optional pr… Jul 5, 2019
penrose.cabal added version constraint for base Jul 2, 2019
penrose.hs [docs] reorganized examples Jun 26, 2019
stack.yaml [errors] wip, upgraded megaparsec and cleaned up stack.ymal. The syst… Jun 6, 2019
stack.yaml.lock [docs] added the lock file for stack Jul 2, 2019

README.md

Penrose CircleCI

Penrose is an early-stage system that is still in development. Our system is not ready for contributions or public use yet, but hopefully will be soon. Send us an email if you're interested in collaborating.

  • See the site for more information and examples.
  • See the wiki for more system-specific information on building, running, testing, and debugging the system.
  • For even more documentation, see Nimo Ni's README.

Example

Here's a simple Penrose visualization in the domain of set theory.

It's specified by the following Substance and Style programs.

  • tree.sub
    Set A
    Set B
    Set C
    Set D
    Set E
    Set F
    Set G
    Subset B A
    Subset C A 
    Subset D B
    Subset E B
    Subset F C
    Subset G C
    NoIntersect E D
    NoIntersect F G
    NoIntersect B C
    
  • venn.sty
    Set x {
        shape = Circle { }
        constraint contains(x, x.label)
    }
    
    Intersect x y {
        constraint overlapping(x, y)
        constraint outsideOf(y.label, x)
        constraint outsideOf(x.label, y)
    }
    
    NoIntersect x y {
        constraint nonOverlapping(x, y)
    }
    
    Subset x y {
        constraint contains(y, x)
        constraint smallerThan(x, y)
        constraint outsideOf(y.label, x)
    }
    
    NoSubset x y {
        objective repel(x, y)
        constraint outsideOf(x, y)
        constraint outsideOf(y.label, x)
        constraint outsideOf(x.label, y)
        constraint nonOverlapping(x, y)
    }
    

Here's how the optimization looks live in the UI.

You can’t perform that action at this time.