27
Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent Yorgey FARM Vancouver, BC, Canada 5 September 2015

Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

DiagramsA Functional EDSL for Vector Graphics

Ryan Yates Brent Yorgey

FARMVancouver, BC, Canada

5 September 2015

Page 2: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

What is diagrams?

• Domain-specific language for vector graphics

• Embedded in Haskell

• 7+ years of development

• Large, active, creative community

Page 3: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

What is diagrams?

• Domain-specific language for vector graphics

• Embedded in Haskell

• 7+ years of development

• Large, active, creative community

Page 4: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

What is diagrams?

• Domain-specific language for vector graphics

• Embedded in Haskell

• 7+ years of development

• Large, active, creative community

Page 5: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

What is diagrams?

• Domain-specific language for vector graphics

• Embedded in Haskell

• 7+ years of development

• Large, active, creative community

Page 6: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Why an EDSL?

• Powerful, programmable alternative to Illustrator,Inkscape, PGF/TikZ

• Tools influence the creative process

Page 7: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Why an EDSL?

• Powerful, programmable alternative to Illustrator,Inkscape, PGF/TikZ

• Tools influence the creative process

Page 8: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

cabal install diagrams

http://projects.haskell.org/diagrams

(second Google result!)

Page 9: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 10: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 11: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 12: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Demo: visualizing binary trees

Page 13: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Tree visualizations

Page 14: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 15: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 16: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent
Page 17: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

More examples

Page 18: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

3D Trees

seeds/seeds.html

http://www.cs.rochester.edu/u/ryates/art/seeds/

Page 19: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Burrows-Wheeler Transform

Page 20: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Weaving a Torus

http://mathr.co.uk/blog/2013-04-05_weaving_a_

torus.html

Page 21: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Parking in Westminster

https://idontgetoutmuch.wordpress.com/2013/10/23/

parking-in-westminster-an-analysis-in-haskell/

Page 22: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

ghc-events-analyze

http://www.well-typed.com/blog/86/

hackage.haskell.org/package/ghc-events-analyze

Page 23: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Cretan maze

http://www.corentindupont.info/blog/posts/

2014-02-17-Cretan-Maze.html

Page 27: Diagrams - A Functional EDSL for Vector Graphicsozark.hendrix.edu/~yorgey/pub/diagrams-FARM-15.pdf · 2019. 12. 2. · Diagrams A Functional EDSL for Vector Graphics Ryan Yates Brent

Happy diagramming!