└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # OpenVisConf 2017 Bibliography 2 | 3 | [Presentation slides](https://docs.google.com/presentation/d/1HhplcsDvHuCNMtMUPeMpQG7vgx0cNe-hLnlQiNPDbvw/pub?start=false&loop=false&delayms=600000#slide=id.g1d8b36cc42_0_0) 4 | 5 | ### D3.js shape tweening demos 6 | 7 | [Smoother polygon transitions](https://bl.ocks.org/veltman/4d1413aa5fd3bb5af1a806c146870031) - animating between shapes using added bend vertices and optimized winding 8 | 9 | [Jigsaw morphing](https://bl.ocks.org/veltman/c582a31d347e04dd75d5331b0074558e) - animating between one shape and many shapes using an overlay grid and polygon clipping 10 | 11 | [Triangulation morphing](https://bl.ocks.org/veltman/14b65b88156d4f5772c285ee7d78403b) - animating between one shape and many shapes with triangulation 12 | 13 | [Electoral cartograms](http://bl.ocks.org/veltman/c7bfb3d4a3817f7ee0bf2dd19ff058c1) 14 | 15 | [North Carolina redistricting](https://bl.ocks.org/veltman/949ce9c1b6f3e54c6e18) 16 | 17 | [Curved shape tweening](https://bl.ocks.org/mbostock/3081153) - tweening between a polygon and a circle by decomposing the circle into a corresponding polygon (by Mike Bostock) 18 | 19 | [Custom shape tweening](https://bl.ocks.org/alexmacy/06cf037853999219cd82bc79edc4aee6) - animating between different arbitrary shapes (by Alex Macy) 20 | 21 | [Superformula tweening](https://bl.ocks.org/mbostock/1020902) - animating between shapes that can be defined by [Superformula](https://en.wikipedia.org/wiki/Superformula) parameters. (by Mike Bostock and Christophe Viau) 22 | 23 | ### JavaScript tools 24 | 25 | [react-svg-morph](https://github.com/gorangajic/react-svg-morph) - utility for morphing between two SVGs in React 26 | 27 | [GreenSock MorphSVG plugin](https://greensock.com/morphSVG) - GSAP shape morphing utility (costs money, not open source) 28 | 29 | [d3.geo2rect](https://github.com/sebastian-meier/d3.geo2rect) - a plugin for morphing between GeoJSON and a rectangular SVG grid 30 | 31 | [d3-interpolate-path](https://github.com/pbeshai/d3-interpolate-path) - a D3 interpolator to interpolate between two unclosed lines, for things like line chart transitions with mismatched data 32 | 33 | [Wilderness](https://github.com/colinmeinke/wilderness) - an SVG manipulation and animation library 34 | 35 | [Cirque](https://github.com/two-n/cirque) - JS utility for morphing between circles and polygons 36 | 37 | [reexpress](https://github.com/blendmaster/reexpress) - Beier-Neely image morphing in JavaScript 38 | 39 | [MorpherJS](https://github.com/jembezmamy/morpher-js) - Canvas image morphing using a manually-defined mesh 40 | 41 | [earcut](https://github.com/mapbox/earcut) - fast JS polygon triangulation 42 | 43 | ### Other tools/demos 44 | 45 | [Processing shape morphing demo ](https://processing.org/examples/morph.html) 46 | 47 | [tweenr](https://github.com/thomasp85/tweenr) - Animation tweening in R 48 | 49 | ### Academic papers and algorithm demos 50 | 51 | *Note: most of these are full of words and symbols I really didn't understand, I've marked the ones I found relatively readable and engaging with an asterisk (*).* 52 | 53 | #### General 2D Morphing 54 | 55 | [Tweening Grammars: Deformation Rules for Representing Change between Discrete Geographic Entities](http://www.geocomputation.org/2005/Kim.pdf)* - relatively accessible overview of lots of different morphing approaches and tradeoffs in the context of visualizing geographic changes over time 56 | 57 | [Polygon Vertex Set Matching Algorithm for Shapefile Tweening](http://vis.berkeley.edu/courses/cs294-10-fa08/wiki/images/d/d3/Finalpaper_rc_sv.pdf)* - algorithm for matching vertices between two arbitrary polygons, also discusses the treatment of polygons with holes 58 | 59 | [2D Polygon Morphing Using the Extended Gaussian Image](http://web.mit.edu/manoli/www/ecimorph/ecimorph.html) - demo and writeup of a way to morph between two convex polygons by matching and interpolating their extended circular images instead of their points 60 | 61 | [Morphing between Geometric Shapes Using Straight-Skeleton-Based Interpolation](http://www.cs.technion.ac.il/~barequet/theses/yakersberg-msc-thesis.pdf.gz) - very long master's thesis outlining an approach to interpolating between two polygons using smoothed versions of their straight skeletons 62 | 63 | [2-D Shape Blending: An Intrinsic Solution to the Vertex Path Problem](https://pdfs.semanticscholar.org/0937/24a8e28ca3cc218ceb95a03b8ccc9666cb0a.pdf) - an approach to tweening two similar shapes by interpolating their angles and edge lengths instead of their vertices 64 | 65 | #### Image morphing 66 | 67 | [Feature-Based Image Metamorphosis](http://graphics.cs.cmu.edu/courses/15-463/2004_fall/www/Papers/beier-neely.pdf)* - original paper detailing one of the foundational image morphing algorithms; includes several gratuitous references to the movie *Ghostbusters* 68 | 69 | [Snakes: Active Contour Models](http://web.cs.ucla.edu/~dt/papers/ijcv88/ijcv88.pdf) - a 1988 paper outlining a "snake" approach to edge detection and image manipulation 70 | 71 | [Transmogrifiers](http://www.transmogrifiers.org/transmogrifiers.pdf)* - an approach to distorting a shape and its contents based on chosen spines 72 | 73 | [Four Corner Image Warping](http://www.fmwconcepts.com/imagemagick/bilinearwarp/FourCornerImageWarp2.pdf)* - a friendly introduction into warping an image between two different quadrilateral shapes 74 | 75 | [Morphing Using Curves and Shape Interpolation Techniques](http://nishitalab.org/user/nis/cdrom/pg/morphing.pdf) - a rather involved image warping technique that relies on feature curves rather than simple vectors 76 | 77 | #### 3D morphing 78 | 79 | [Poisson shape interpolation](https://pdfs.semanticscholar.org/e5f1/2b4ec9401885db46c2fae852707e81670639.pdf) - I understood virtually none of this but it does have some amazing diagrams 80 | 81 | [Establishing Correspondences by Topological Merging](http://graphicsinterface.org/wp-content/uploads/gi1991-35.pdf) - a 1991 paper outlining an approach to 3D shape transformation that made a surprising amount of sense 82 | 83 | [Shape Transformation Using Variational Implicit Functions](http://www.cc.gatech.edu/~turk/my_papers/schange.pdf) - outlines a method for creating a continuous 3D transformation between two 2D shapes (for example, creating a 3D model of someone's kidney from a series of 2D slices) 84 | 85 | [Polyhedral Morphing Using Feature-Based Surface Decomposition](http://gamma.cs.unc.edu/3DMORPHING/demos.html) - Some weird morphing demos, including a woman turning into a triceratops and back (the title is "Tracy to Ruby," it's unclear which one is the woman and which one is the triceratops) 86 | 87 | [Zoomorphic Design](http://people.sutd.edu.sg/~saikit/projects/zoomorphic/zoomorphic.pdf)* - A pretty wild paper about blending animals and inanimate objects into hybrids like a horse-shaped chair or a dolphin-shaped tricycle, worth skimming for the terrifying renderings 88 | 89 | [3D Morphing](http://compbio.mit.edu/publications/I03_Kamvysselis_3Dmorph_97.pdf) - An overview of a few different possible 3D morphing techniques 90 | 91 | 92 | #### Morphing graphs with triangulation 93 | 94 | [Guaranteed intersection-free polygon morphing](http://www.cs.technion.ac.il/~gotsman/AmendedPubl/GuaranteedIntersection/GuaranteedIntersection.pdf) - A triangulation-based algorithm for morphing corresponding polygons without self-intersections; it involves "spiderwebs" and includes a bat morphing into a cattle skull for some reason 95 | 96 | [Intersection-Free Morphing of Planar Graphs](http://gmorph.cs.arizona.edu/gd.html) - demos and a paper for an algorithm that smoothly morphs two planar graphs without self-intersections along the way (requires both graphs to have corresponding structures already) 97 | 98 | [As-Rigid-As-Possible Shape Interpolation](http://www.cs.tau.ac.il/~dcor/online_papers/papers/arap.pdf) - A method of morphing shapes in terms of their interior triangulations that I mostly didn't understand but shows a penguin turning into a dolphin 99 | 100 | [Morphing piecewise linear shapes using convex representation](http://www.cs.technion.ac.il/~vitus/papers/PhDThesis.pdf) - A PhD thesis on triangulation-based morphing techniques that I did not really understand or finish reading (it's 120 pages long) 101 | 102 | [Tweening Boundary Curves of Non-simple Immersions of a Disk](http://www.ics.uci.edu/~gopi/SamplePubs/Tweening.pdf) - some sort of triangulation-based algorithm for morphing certain types of self-intersecting shapes, boy did I not understand most of the words in here 103 | 104 | #### Statistical shape analysis and Procrustes transformation 105 | 106 | [Introduction to Statistical Shape Analysis](https://graphics.stanford.edu/courses/cs164-09-spring/Handouts/paper_shape_spaces_imm403.pdf)* 107 | 108 | [Procrustes analysis on Wikipedia](https://en.wikipedia.org/wiki/Procrustes_analysis)* 109 | 110 | ### Slide marginalia 111 | 112 | [FantaMorph sample gallery](http://www.fantamorph.com/samples.html) - a must-see 113 | 114 | [WRAL redistricting comparison](http://www.wral.com/how-2-redrawn-districts-could-affect-most-nc-voters/15339226/) by Tyler Dukes 115 | 116 | [On Growth and Form](https://archive.org/details/ongrowthform00thom) by D'Arcy Wentworth Thompson 117 | 118 | [Courts are Shaking Up House Elections in 2016](https://www.bloomberg.com/politics/graphics/2015-redistricting/) (Bloomberg News) - includes an animated transformation of Florida's 5th District 119 | 120 | [2013 Australian Election Results](https://www.theguardian.com/world/datablog/2013/sep/06/better-election-results-map) from The Guardian 121 | --------------------------------------------------------------------------------