Doodle: Visualisation in Scala
summary
A Scala 2D visualisation library that renders on the desktop via Java2D, to files (PDF, PNG, GIF) and to the browser using Scala.js to SVG, with a layered design that goes chart → image → canvas. High-level charts produce scatterplots and bar charts with sensible defaults; the image layer exposes vector paths, layout operators (above, beside, on), bounding boxes and origins; the canvas provides an imperative, streamable backend. Current release is 0.8.2 and planned work includes animation, interactivity, gradients and backend-specific features.
AI-written summary · about
chapters (24)
- 0:00Intro
- 3:29Not many good options for Scala
- 4:03Doodle works with 2D vector graphics
- 5:50Decreases reasonability
- 7:02Customise colours, tick marks, key, etc.
- 8:27Make the common cases easy
- 9:16import io.circe.generic.auto.
- 10:29Paths, and relationships between paths
- 10:41Path is a sequence of moves, lines, and curves
- 12:24Layout aligns origins of bounding boxes
- 15:54Pad or shrink bounding box
- 17:03Compositional, easy to reason about
- 18:01Encoder and Decoder type classes
- 19:23Image generates an intermediate data structure
- 19:43Performance or memory usage limits
- 20:12Draw directly to a Canvas
- 21:23Extending Image layout operations
- 21:50Find PDF rendering engine with fewer bugs
- 22:06"Recursion scheme" encoding
- 22:17Composition of languages
- 23:25Layered design works nicely
- 23:42Make common case easy
- 23:53Make composition of layers easy
- 24:07Doodle inspired by work on graphical grammars
related talks
01h 05mData Visualization with Scala tools
51mD3 js: Easy and flexible data visualisation using Web standards
46mUsing dojox.gfx and dojox.charting
24mBeyond the bar graph: Creative visualization with D3.js
48mVisual Storytelling w/D3-A Conceptual Intro to Visualizing Data w/JavaScript
20mIntro to LayerChart
29m"Hand Coded Artisanal Data-Visualization"
37mOriginal graphics libraries powering web dataviz
