{
  "checked": "2026-09-28",
  "people": [
    {
      "id": "person-adam-runions",
      "name": "Adam Runions",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-adrian-secord",
      "name": "Adrian Secord",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-adrianne-herman",
      "name": "Adrianne Herman",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-alain-fournier",
      "name": "Alain Fournier",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-alan-turing",
      "name": "Alan Turing",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-anders-hoff",
      "name": "Anders Hoff",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-andrew-vince",
      "name": "Andrew Vince",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-aristid-lindenmayer",
      "name": "Aristid Lindenmayer",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-ben-fry",
      "name": "Ben Fry",
      "study": "fry",
      "placement": "In the collection"
    },
    {
      "id": "person-benoit-mandelbrot",
      "name": "Benoît Mandelbrot",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-bert-wang-chak-chan",
      "name": "Bert Wang-Chak Chan",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-boris-delaunay",
      "name": "Boris Delaunay",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-brendan-lane",
      "name": "Brendan Lane",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-bryce-e-bayer",
      "name": "Bryce E. Bayer",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-carlos-cruz-diez",
      "name": "Carlos Cruz-Diez",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-casey-reas",
      "name": "Casey Reas",
      "study": "reas",
      "placement": "In the collection"
    },
    {
      "id": "person-cassie-tarakajian",
      "name": "Cassie Tarakajian",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Created the p5.js Web Editor, making creative coding available directly in a browser, and mentored its next project lead."
    },
    {
      "id": "person-celso-grebogi",
      "name": "Celso Grebogi",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-clifford-a-pickover",
      "name": "Clifford A. Pickover",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-craig-e-kolb",
      "name": "Craig E. Kolb",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-craig-reynolds",
      "name": "Craig Reynolds",
      "study": "reynolds",
      "placement": "In the collection"
    },
    {
      "id": "person-craig-s-kaplan",
      "name": "Craig S. Kaplan",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-cyril-stanley-smith",
      "name": "Cyril Stanley Smith",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-daniel-shiffman",
      "name": "Daniel Shiffman",
      "study": "shiffman",
      "placement": "In Ingredients"
    },
    {
      "id": "person-david-ruelle",
      "name": "David Ruelle",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-donald-e-knuth",
      "name": "Donald E. Knuth",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-donald-fussell",
      "name": "Donald Fussell",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-edward-n-lorenz",
      "name": "Edward N. Lorenz",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-edwin-catmull",
      "name": "Edwin Catmull",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-ernst-chladni",
      "name": "Ernst Chladni",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-evgraf-s-fedorov",
      "name": "Evgraf S. Fedorov",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-f-kenton-musgrave",
      "name": "F. Kenton Musgrave",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-floris-takens",
      "name": "Floris Takens",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-frieder-nake",
      "name": "Frieder Nake",
      "study": "nake",
      "placement": "In the collection"
    },
    {
      "id": "person-gene-kogan",
      "name": "Gene Kogan",
      "study": "kogan",
      "placement": "In Ingredients"
    },
    {
      "id": "person-georg-nees",
      "name": "Georg Nees",
      "study": "nees",
      "placement": "In the collection"
    },
    {
      "id": "person-george-polya",
      "name": "George Pólya",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-georgy-voronoy",
      "name": "Georgy Voronoy",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-godfried-t-toussaint",
      "name": "Godfried T. Toussaint",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-golan-levin",
      "name": "Golan Levin",
      "study": "levin",
      "placement": "In Ingredients"
    },
    {
      "id": "person-gulru-necipoglu",
      "name": "Gülru Necipoğlu",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-h-s-m-coxeter",
      "name": "H. S. M. Coxeter",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-haiyi-liang",
      "name": "Haiyi Liang",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-hao-wang",
      "name": "Hao Wang",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-harold-cohen",
      "name": "Harold Cohen",
      "study": "cohen",
      "placement": "In the collection"
    },
    {
      "id": "person-henri-poincare",
      "name": "Henri Poincaré",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-inigo-quilez",
      "name": "Iñigo Quilez",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jack-wisdom",
      "name": "Jack Wisdom",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-james-a-yorke",
      "name": "James A. Yorke",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-james-clark",
      "name": "James Clark",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-james-p-crutchfield",
      "name": "James P. Crutchfield",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jared-tarbell",
      "name": "Jared Tarbell",
      "study": "tarbell",
      "placement": "In the collection"
    },
    {
      "id": "person-jeff-jones",
      "name": "Jeff Jones",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jesse-louis-rosenberg",
      "name": "Jesse Louis-Rosenberg",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jessica-rosenkrantz",
      "name": "Jessica Rosenkrantz",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jim-blinn",
      "name": "Jim Blinn",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jim-hourihan",
      "name": "Jim Hourihan",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-johan-gielis",
      "name": "Johan Gielis",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-browning",
      "name": "John Browning",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-c-hart",
      "name": "John C. Hart",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-e-hutchinson",
      "name": "John E. Hutchinson",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-e-pearson",
      "name": "John E. Pearson",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-maeda",
      "name": "John Maeda",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Design By Numbers and his teaching at MIT’s Aesthetics and Computation Group helped shape Reas and Fry’s approach to visual programming."
    },
    {
      "id": "person-john-w-van-ness",
      "name": "John W. Van Ness",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-john-whitney",
      "name": "John Whitney",
      "study": "whitney",
      "placement": "In the collection"
    },
    {
      "id": "person-jonathan-shade",
      "name": "Jonathan Shade",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-joseph-b-kruskal",
      "name": "Joseph B. Kruskal",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-josh-barnes",
      "name": "Josh Barnes",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-joshua-davis",
      "name": "Joshua Davis",
      "study": "davis",
      "placement": "In the collection"
    },
    {
      "id": "person-josiah-willard-gibbs",
      "name": "Josiah Willard Gibbs",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-jules-lissajous",
      "name": "Jules Lissajous",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-karl-sims",
      "name": "Karl Sims",
      "study": "sims",
      "placement": "In Ingredients"
    },
    {
      "id": "person-kate-hollenbach",
      "name": "Kate Hollenbach",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Created phonelovesyoutoo: a custom phone-recording application and immersive video matrix that examine the intimate habits of screen use."
    },
    {
      "id": "person-ken-perlin",
      "name": "Ken Perlin",
      "study": "perlin",
      "placement": "In Ingredients"
    },
    {
      "id": "person-kyle-mcdonald",
      "name": "Kyle McDonald",
      "study": null,
      "placement": "To be assigned"
    },
    {
      "id": "person-l-mahadevan",
      "name": "L. Mahadevan",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-lauren-lee-mccarthy",
      "name": "Lauren Lee McCarthy",
      "study": "mccarthy",
      "placement": "In Ingredients"
    },
    {
      "id": "person-lawrence-g-roberts",
      "name": "Lawrence G. Roberts",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-leonard-m-sander",
      "name": "Leonard M. Sander",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-lillian-schwartz",
      "name": "Lillian Schwartz",
      "study": "schwartz",
      "placement": "In the collection"
    },
    {
      "id": "person-loren-carpenter",
      "name": "Loren Carpenter",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-louis-steinberg",
      "name": "Louis Steinberg",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-m-c-escher",
      "name": "M. C. Escher",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-manfred-mohr",
      "name": "Manfred Mohr",
      "study": "mohr",
      "placement": "In the collection"
    },
    {
      "id": "person-marcus-nordenstam",
      "name": "Marcus Nordenstam",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-marius-watz",
      "name": "Marius Watz",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-mathias-isaksen",
      "name": "Mathias Isaksen",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-michael-barnsley",
      "name": "Michael Barnsley",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-michael-f-cohen",
      "name": "Michael F. Cohen",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-mohammad-al-asad",
      "name": "Mohammad al-Asad",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-muriel-cooper",
      "name": "Muriel Cooper",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Typography and interactive information spaces at MIT’s Visible Language Workshop helped establish the design-and-code research inherited by Processing."
    },
    {
      "id": "person-oliver-deussen",
      "name": "Oliver Deussen",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-oliver-heaviside",
      "name": "Oliver Heaviside",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-olivia-jack",
      "name": "Olivia Jack",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-paul-bourke",
      "name": "Paul Bourke",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-paul-j-steinhardt",
      "name": "Paul J. Steinhardt",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-paul-w-carlson",
      "name": "Paul W. Carlson",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-pauline-boucher",
      "name": "Pauline Boucher",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-peter-gray",
      "name": "Peter Gray",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-peter-j-lu",
      "name": "Peter J. Lu",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-piet-hut",
      "name": "Piet Hut",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-przemys-aw-prusinkiewicz",
      "name": "Przemysław Prusinkiewicz",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-qianqian-ye",
      "name": "Qianqian Ye",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Led p5.js documentation accessibility and contributor work, and co-edited the Processing Community Catalog."
    },
    {
      "id": "person-r-luke-dubois",
      "name": "R. Luke DuBois",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Co-authored Processing’s Sound tutorial with Wilm Thoben, transmitting audio analysis and synthesis to visual programmers."
    },
    {
      "id": "person-robert-berger",
      "name": "Robert Berger",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-robert-bosch",
      "name": "Robert Bosch",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-robert-bridson",
      "name": "Robert Bridson",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-robert-l-cook",
      "name": "Robert L. Cook",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-robert-s-mace",
      "name": "Robert S. Mace",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-robert-w-floyd",
      "name": "Robert W. Floyd",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-roger-penrose",
      "name": "Roger Penrose",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-sebastien-truchet",
      "name": "Sébastien Truchet",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-stefan-hiller",
      "name": "Stefan Hiller",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-steina-vasulka",
      "name": "Steina Vasulka",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-stephen-k-scott",
      "name": "Stephen K. Scott",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-stephen-wolfram",
      "name": "Stephen Wolfram",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-taeyoon-choi",
      "name": "Taeyoon Choi",
      "study": null,
      "placement": "To be assigned"
    },
    {
      "id": "person-tega-brain",
      "name": "Tega Brain",
      "study": "brain",
      "placement": "In Ingredients"
    },
    {
      "id": "person-thomas-a-witten-jr",
      "name": "Thomas A. Witten Jr.",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-thomas-young",
      "name": "Thomas Young",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-troy-shinbrot",
      "name": "Troy Shinbrot",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-tyler-hobbs",
      "name": "Tyler Hobbs",
      "study": "hobbs",
      "placement": "In Ingredients"
    },
    {
      "id": "person-vera-molnar",
      "name": "Vera Molnár",
      "study": "molnar",
      "placement": "In the collection"
    },
    {
      "id": "person-woody-vasulka",
      "name": "Woody Vasulka",
      "study": null,
      "placement": "In Ingredients"
    },
    {
      "id": "person-xin-xin",
      "name": "Xin Xin",
      "study": null,
      "placement": "Creative coding lineage",
      "inclusion": "Critical Computation courses pair p5.js programming with critique and design; Code, Decolonized develops socially engaged ways of teaching code."
    },
    {
      "id": "person-yury-gitman",
      "name": "Yury Gitman",
      "study": null,
      "placement": "Project author"
    },
    {
      "id": "person-zach-lieberman",
      "name": "Zach Lieberman",
      "study": "lieberman",
      "placement": "In Ingredients"
    }
  ],
  "entities": [
    {
      "id": "entity-eyebeam",
      "name": "Eyebeam",
      "type": "organization"
    },
    {
      "id": "entity-mit",
      "name": "MIT"
    },
    {
      "id": "entity-ucla",
      "name": "UCLA"
    },
    {
      "id": "entity-p5-js",
      "name": "p5.js",
      "category": "library",
      "note": "",
      "type": "tool"
    },
    {
      "id": "entity-processing-foundation",
      "name": "Processing Foundation",
      "type": "organization",
      "note": "Supports open-source creative tools, education and community. These links describe stewardship and transmission, not artistic authorship."
    },
    {
      "id": "entity-carnegie-mellon-university",
      "name": "Carnegie Mellon University"
    },
    {
      "id": "entity-studio-for-creative-inquiry",
      "name": "STUDIO for Creative Inquiry"
    },
    {
      "id": "entity-openframeworks",
      "name": "openFrameworks",
      "category": "toolkit",
      "note": ""
    },
    {
      "id": "entity-school-for-poetic-computation",
      "name": "School for Poetic Computation",
      "type": "organization",
      "note": "An artist-led learning community connecting computation and artistic practice."
    },
    {
      "id": "entity-nyu-itp",
      "name": "NYU ITP"
    },
    {
      "id": "entity-nyu-integrated-design-media",
      "name": "NYU Integrated Design & Media"
    },
    {
      "id": "entity-georgia-tech",
      "name": "Georgia Tech"
    },
    {
      "id": "entity-code-as-creative-medium",
      "name": "Code as Creative Medium"
    },
    {
      "id": "entity-university-of-california-berkeley",
      "name": "University of California, Berkeley"
    },
    {
      "id": "entity-stanford-university",
      "name": "Stanford University"
    },
    {
      "id": "entity-university-of-british-columbia",
      "name": "University of British Columbia"
    },
    {
      "id": "entity-university-of-waterloo",
      "name": "University of Waterloo"
    },
    {
      "id": "entity-university-of-calgary",
      "name": "University of Calgary"
    },
    {
      "id": "entity-mcgill-university",
      "name": "McGill University"
    },
    {
      "id": "entity-university-of-bremen",
      "name": "University of Bremen"
    },
    {
      "id": "entity-university-of-konstanz",
      "name": "University of Konstanz"
    },
    {
      "id": "entity-university-of-oxford",
      "name": "University of Oxford"
    },
    {
      "id": "entity-university-of-cambridge",
      "name": "University of Cambridge"
    },
    {
      "id": "entity-parsons-school-of-design",
      "name": "Parsons School of Design"
    },
    {
      "id": "entity-c",
      "name": "C",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-cpp",
      "name": "C++",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-javascript",
      "name": "JavaScript",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-java",
      "name": "Java",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-python",
      "name": "Python",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-fortran",
      "name": "FORTRAN",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-algol",
      "name": "ALGOL",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-lisp",
      "name": "Lisp",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-clojure",
      "name": "Clojure",
      "category": "language",
      "note": ""
    },
    {
      "id": "entity-glsl",
      "name": "GLSL",
      "category": "shader language",
      "note": ""
    },
    {
      "id": "entity-processing",
      "name": "Processing",
      "category": "language / environment",
      "note": "",
      "type": "tool"
    },
    {
      "id": "entity-quil",
      "name": "Quil",
      "category": "library",
      "note": ""
    },
    {
      "id": "entity-hype",
      "name": "HYPE",
      "category": "framework",
      "note": ""
    },
    {
      "id": "entity-processing-py",
      "name": "Processing.py",
      "category": "mode / environment",
      "note": ""
    },
    {
      "id": "entity-assembly",
      "name": "Assembly",
      "category": "language family",
      "note": "No artist/work association verified in this pass. An architecture and source are needed; machine code is not automatically assembly."
    },
    {
      "id": "entity-ruby",
      "name": "Ruby",
      "category": "language",
      "note": "No artist/work association verified in this pass. This is a research gap, not evidence of absence."
    },
    {
      "id": "entity-ruby-on-rails",
      "name": "Ruby on Rails",
      "category": "framework",
      "note": "A Ruby web framework. No artist/work association verified in this pass. See https://guides.rubyonrails.org/getting_started.html"
    },
    {
      "id": "entity-p5-js-web-editor",
      "name": "p5.js Web Editor",
      "type": "tool",
      "note": "A browser-based workspace for writing and sharing p5.js sketches."
    },
    {
      "id": "entity-processing-community-catalog",
      "name": "Processing Community Catalog",
      "type": "publication",
      "note": "Community contributions gathered through a 2021 open call; published in 2023."
    },
    {
      "id": "entity-critical-computation",
      "name": "Critical Computation",
      "type": "pedagogy",
      "note": "Code, critique and design, taught together through creative programming."
    },
    {
      "id": "entity-code-decolonized",
      "name": "Code, Decolonized",
      "type": "pedagogy",
      "note": "A teaching practicum exploring socially engaged code education."
    },
    {
      "id": "entity-processing-community-day",
      "name": "Processing Community Day",
      "type": "community",
      "note": "Locally organized gatherings around art, code and creative tools."
    },
    {
      "id": "entity-phonelovesyoutoo",
      "name": "phonelovesyoutoo",
      "type": "artwork",
      "note": "An immersive video matrix made from recordings of the artist’s own phone use."
    },
    {
      "id": "entity-design-by-numbers",
      "name": "Design By Numbers",
      "type": "tool",
      "note": "John Maeda’s minimal visual-programming system, released in 1999."
    },
    {
      "id": "entity-the-nature-of-code",
      "name": "The Nature of Code",
      "type": "publication",
      "note": "Daniel Shiffman’s teaching of natural systems through creative coding."
    }
  ],
  "recipes": [
    {
      "id": "recipe-curl-noise",
      "name": "Curl noise"
    },
    {
      "id": "recipe-domain-warping",
      "name": "Domain warping"
    },
    {
      "id": "recipe-vector-fields-from-math",
      "name": "Vector fields from math"
    },
    {
      "id": "recipe-chladni-standing-waves",
      "name": "Chladni / standing waves"
    },
    {
      "id": "recipe-reaction-diffusion-gray-scott",
      "name": "Reaction–diffusion (Gray–Scott)"
    },
    {
      "id": "recipe-differential-growth",
      "name": "Differential growth"
    },
    {
      "id": "recipe-diffusion-limited-aggregation-dla",
      "name": "Diffusion-limited aggregation (DLA)"
    },
    {
      "id": "recipe-space-colonization",
      "name": "Space colonization"
    },
    {
      "id": "recipe-physarum-slime-mold",
      "name": "Physarum / slime mold"
    },
    {
      "id": "recipe-cellular-automata-beyond-life",
      "name": "Cellular automata beyond Life"
    },
    {
      "id": "recipe-truchet-tiles",
      "name": "Truchet tiles"
    },
    {
      "id": "recipe-wang-tiles",
      "name": "Wang tiles"
    },
    {
      "id": "recipe-wallpaper-groups",
      "name": "Wallpaper groups"
    },
    {
      "id": "recipe-girih-islamic-star-patterns",
      "name": "Girih / Islamic star patterns"
    },
    {
      "id": "recipe-penrose-aperiodic",
      "name": "Penrose / aperiodic"
    },
    {
      "id": "recipe-hyperbolic-tilings-p-q",
      "name": "Hyperbolic tilings {p,q}"
    },
    {
      "id": "recipe-l-systems",
      "name": "L-systems"
    },
    {
      "id": "recipe-recursive-subdivision",
      "name": "Recursive subdivision"
    },
    {
      "id": "recipe-chaos-game-ifs",
      "name": "Chaos game / IFS"
    },
    {
      "id": "recipe-fractal-fracture",
      "name": "Fractal fracture"
    },
    {
      "id": "recipe-strange-attractors",
      "name": "Strange attractors"
    },
    {
      "id": "recipe-harmonographs-lissajous",
      "name": "Harmonographs / Lissajous"
    },
    {
      "id": "recipe-double-pendulum-n-body-trails",
      "name": "Double pendulum / N-body trails"
    },
    {
      "id": "recipe-orbit-traps",
      "name": "Orbit traps"
    },
    {
      "id": "recipe-poisson-disk-blue-noise",
      "name": "Poisson-disk / blue noise"
    },
    {
      "id": "recipe-dithering-as-art",
      "name": "Dithering as art"
    },
    {
      "id": "recipe-halftone-systems",
      "name": "Halftone systems"
    },
    {
      "id": "recipe-tsp-art-scribble-fill",
      "name": "TSP art / scribble fill"
    },
    {
      "id": "recipe-weighted-voronoi-stippling",
      "name": "Weighted Voronoi stippling"
    },
    {
      "id": "recipe-circle-packing-grown",
      "name": "Circle packing, grown"
    },
    {
      "id": "recipe-voronoi-delaunay-operated-on",
      "name": "Voronoi/Delaunay operated on"
    },
    {
      "id": "recipe-minimum-spanning-tree-relative-neighborhood-graphs",
      "name": "Minimum spanning tree / relative neighborhood graphs"
    },
    {
      "id": "recipe-hidden-line-3d-2d",
      "name": "Hidden-line 3D → 2D"
    },
    {
      "id": "recipe-superformula-supershapes",
      "name": "Superformula / supershapes"
    },
    {
      "id": "recipe-moire",
      "name": "Moiré"
    },
    {
      "id": "recipe-wave-interference",
      "name": "Wave interference"
    },
    {
      "id": "recipe-metaballs-implicit-fields",
      "name": "Metaballs / implicit fields"
    },
    {
      "id": "recipe-fbm-ridged-turbulent",
      "name": "fBm + ridged / turbulent"
    },
    {
      "id": "recipe-sdf-raymarching",
      "name": "SDF raymarching"
    },
    {
      "id": "recipe-feedback-buffers",
      "name": "Feedback buffers"
    }
  ],
  "relationships": [
    {
      "person": "person-robert-bridson",
      "target": "recipe-curl-noise",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored Curl-Noise for Procedural Fluid Flow, constructing incompressible procedural velocity fields with controllable boundaries.",
      "source": "https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf",
      "sourceLabel": "Bridson, Hourihan & Nordenstam, SIGGRAPH 2007 (author-hosted paper)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jim-hourihan",
      "target": "recipe-curl-noise",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored the 2007 curl-noise method for procedural fluid-like motion.",
      "source": "https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf",
      "sourceLabel": "Bridson, Hourihan & Nordenstam, SIGGRAPH 2007 (author-hosted paper)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-marcus-nordenstam",
      "target": "recipe-curl-noise",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored the 2007 curl-noise method, including treatment of solid boundaries.",
      "source": "https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf",
      "sourceLabel": "Bridson, Hourihan & Nordenstam, SIGGRAPH 2007 (author-hosted paper)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-ken-perlin",
      "target": "recipe-domain-warping",
      "kind": "contribution",
      "role": "Noise and domain displacement",
      "detail": "Developed procedural noise and demonstrated domain displacement as a texture-building operation.",
      "source": "https://mrl.cs.nyu.edu/projects/texture/",
      "sourceLabel": "NYU Media Research Lab · procedural textures",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-inigo-quilez",
      "target": "recipe-domain-warping",
      "kind": "contribution",
      "role": "Earlier exposition",
      "detail": "Mathias Isaksen's first-person account explicitly credits Quilez's 2002 domain-warping article as an earlier explanation of the technique.",
      "source": "https://st4yho.me/domain-warping-an-interactive-introduction/",
      "sourceLabel": "Mathias Isaksen, Domain warping: an interactive introduction (2022)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-mathias-isaksen",
      "target": "recipe-domain-warping",
      "kind": "contribution",
      "role": "Later artist / expositor",
      "detail": "His illustrated tutorial documents domain-warped artworks and shows how to repeatedly displace sample positions with noise.",
      "source": "https://st4yho.me/domain-warping-an-interactive-introduction/",
      "sourceLabel": "Artist's own tutorial, 18 March 2022",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-josiah-willard-gibbs",
      "target": "recipe-vector-fields-from-math",
      "kind": "contribution",
      "role": "Mathematical foundation",
      "detail": "Developed vector analysis as a practical mathematical language; his 1881–1884 Yale notes are preserved by the Smithsonian.",
      "source": "https://library.si.edu/digital-library/book/elementsvectora00gibb",
      "sourceLabel": "Smithsonian Libraries, Elements of vector analysis",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-oliver-heaviside",
      "target": "recipe-vector-fields-from-math",
      "kind": "contribution",
      "role": "Mathematical foundation",
      "detail": "The Smithsonian identifies Heaviside alongside Gibbs as a developer of practical vector analysis.",
      "source": "https://library.si.edu/digital-library/book/elementsvectora00gibb",
      "sourceLabel": "Smithsonian Libraries, Elements of vector analysis",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-tyler-hobbs",
      "target": "recipe-vector-fields-from-math",
      "kind": "contribution",
      "role": "Later artist / expositor",
      "detail": "Explains tracing paths through direction fields and shows how he uses and varies them in his own artwork.",
      "source": "https://www.tylerxhobbs.com/words/flow-fields",
      "sourceLabel": "Tyler Hobbs · Flow Fields",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-gene-kogan",
      "target": "recipe-vector-fields-from-math",
      "kind": "contribution",
      "role": "Artistic use · Vertex rivers (2011)",
      "detail": "His work index describes Vertex rivers as dots over vector fields. The work page documents a generative sketch, shown at Big Screen Plaza in January 2012, and links to its OpenProcessing code.",
      "source": "https://genekogan.com/work/",
      "sourceLabel": "Artist’s work index · Vertex rivers",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-ernst-chladni",
      "target": "recipe-chladni-standing-waves",
      "kind": "contribution",
      "role": "Experimental pioneer",
      "detail": "Developed sand-covered vibrating-plate demonstrations that made nodal patterns visible.",
      "source": "https://amhistory.si.edu/science/chladni.htm",
      "sourceLabel": "Smithsonian, Chladni Plates",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-alan-turing",
      "target": "recipe-reaction-diffusion-gray-scott",
      "kind": "contribution",
      "role": "1952 theoretical foundation",
      "detail": "Proposed reaction and diffusion as a mechanism for the emergence of biological pattern.",
      "source": "https://embryo.asu.edu/pages/chemical-basis-morphogenesis-1952-alan-m-turing",
      "sourceLabel": "Arizona State University, Embryo Project Encyclopedia",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-peter-gray",
      "target": "recipe-reaction-diffusion-gray-scott",
      "kind": "contribution",
      "role": "1984 model · coauthor",
      "detail": "Coauthored the analysis of cubic autocatalysis and catalyst decay in an isothermal stirred reactor underlying the Gray–Scott model.",
      "source": "https://www.sciencedirect.com/science/article/abs/pii/0009250984870177",
      "sourceLabel": "Gray & Scott, Chemical Engineering Science 39 (1984), 1087–1097; metadata verified through NII and CNRS records",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-stephen-k-scott",
      "target": "recipe-reaction-diffusion-gray-scott",
      "kind": "contribution",
      "role": "1984 model · coauthor",
      "detail": "Coauthored the reaction-system analysis that supplies the named Gray–Scott chemical model.",
      "source": "https://www.sciencedirect.com/science/article/abs/pii/0009250984870177",
      "sourceLabel": "Gray & Scott, Chemical Engineering Science 39 (1984), 1087–1097; metadata verified through NII and CNRS records",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-john-e-pearson",
      "target": "recipe-reaction-diffusion-gray-scott",
      "kind": "contribution",
      "role": "1993 pattern study",
      "detail": "His simulations demonstrated diverse irregular patterns and dividing spots in a simple reaction–diffusion system.",
      "source": "https://arxiv.org/abs/patt-sol/9304003",
      "sourceLabel": "Pearson, Complex Patterns in a Simple System (1993), author preprint",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-karl-sims",
      "target": "recipe-reaction-diffusion-gray-scott",
      "kind": "contribution",
      "role": "Later artistic exposition",
      "detail": "His tutorial explains an implementation of Gray–Scott reaction–diffusion and ways of controlling the resulting patterns.",
      "source": "https://www.karlsims.com/rd.html",
      "sourceLabel": "Karl Sims, Reaction-Diffusion Tutorial",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-haiyi-liang",
      "target": "recipe-differential-growth",
      "kind": "contribution",
      "role": "2011 scientific model · coauthor",
      "detail": "Coauthored experiments and a thin-shell model showing how excess edge growth can drive a lily's blooming.",
      "source": "https://pmc.ncbi.nlm.nih.gov/articles/PMC3078366/",
      "sourceLabel": "Liang & Mahadevan, PNAS (2011)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-l-mahadevan",
      "target": "recipe-differential-growth",
      "kind": "contribution",
      "role": "2011 scientific model · coauthor",
      "detail": "Coauthored the lily-growth study explicitly identified by Nervous System as an inspiration for Floraform.",
      "source": "https://pmc.ncbi.nlm.nih.gov/articles/PMC3078366/",
      "sourceLabel": "Liang & Mahadevan, PNAS (2011); Floraform project credits",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jessica-rosenkrantz",
      "target": "recipe-differential-growth",
      "kind": "contribution",
      "role": "Later artistic use",
      "detail": "As a Nervous System cofounder, developed a studio practice whose Floraform system turns differential surface growth into sculptures and jewelry.",
      "source": "https://n-e-r-v-o-u-s.com/projects/floraform/",
      "sourceLabel": "Nervous System, Floraform; studio authorship verified on About Us",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jesse-louis-rosenberg",
      "target": "recipe-differential-growth",
      "kind": "contribution",
      "role": "Later artistic use",
      "detail": "As a Nervous System cofounder, developed a studio practice whose Floraform system simulates differently growing elastic surfaces.",
      "source": "https://n-e-r-v-o-u-s.com/projects/floraform/",
      "sourceLabel": "Nervous System, Floraform; studio authorship verified on About Us",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-anders-hoff",
      "target": "recipe-differential-growth",
      "kind": "contribution",
      "role": "Later artistic implementation",
      "detail": "His Differential Line code grows connected nodes and explicitly compares its behavior with Nervous System's Floraform.",
      "source": "https://github.com/inconvergent/differential-line",
      "sourceLabel": "Artist's own code; identity verified on inconvergent.net",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-thomas-a-witten-jr",
      "target": "recipe-diffusion-limited-aggregation-dla",
      "kind": "contribution",
      "role": "1981 model · coauthor",
      "detail": "Coauthored the original diffusion-limited aggregation paper studying random aggregates by computer simulation.",
      "source": "https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.47.1400",
      "sourceLabel": "Witten & Sander, Physical Review Letters 47 (1981), 1400",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-leonard-m-sander",
      "target": "recipe-diffusion-limited-aggregation-dla",
      "kind": "contribution",
      "role": "1981 model · coauthor",
      "detail": "Coauthored the diffusion-limited aggregation model and its analysis of scaling in random aggregates.",
      "source": "https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.47.1400",
      "sourceLabel": "Witten & Sander, Physical Review Letters 47 (1981), 1400",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-adam-runions",
      "target": "recipe-space-colonization",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored the space-colonization tree model extending an earlier open leaf-venation model into three dimensions.",
      "source": "https://algorithmicbotany.org/papers/colonization.egwnp2007.html",
      "sourceLabel": "Runions, Lane & Prusinkiewicz, Eurographics Workshop on Natural Phenomena (2007)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-brendan-lane",
      "target": "recipe-space-colonization",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored the tree-growth algorithm whose parameters control visually relevant characteristics of tree shape.",
      "source": "https://algorithmicbotany.org/papers/colonization.egwnp2007.html",
      "sourceLabel": "Runions, Lane & Prusinkiewicz, Eurographics Workshop on Natural Phenomena (2007)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-przemys-aw-prusinkiewicz",
      "target": "recipe-space-colonization",
      "kind": "contribution",
      "role": "2007 paper · coauthor",
      "detail": "Coauthored the space-colonization model of trees based on geometric competition for available space.",
      "source": "https://algorithmicbotany.org/papers/colonization.egwnp2007.html",
      "sourceLabel": "Runions, Lane & Prusinkiewicz, Eurographics Workshop on Natural Phenomena (2007)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jeff-jones",
      "target": "recipe-physarum-slime-mold",
      "kind": "contribution",
      "role": "2010 agent model",
      "detail": "Published a Physarum-inspired model in which simple chemotactic particles form and reorganize transport networks.",
      "source": "https://uwe-repository.worktribe.com/output/980579/characteristics-of-pattern-formation-and-evolution-in-approximations-of-physarum-transport-networks",
      "sourceLabel": "Jones, Artificial Life 16 (2010), 127–153; UWE institutional repository",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-stephen-wolfram",
      "target": "recipe-cellular-automata-beyond-life",
      "kind": "contribution",
      "role": "1983 elementary-CA study",
      "detail": "Analyzed self-organization and pattern formation in one-dimensional binary cellular automata.",
      "source": "https://journals.aps.org/rmp/abstract/10.1103/RevModPhys.55.601",
      "sourceLabel": "Wolfram, Reviews of Modern Physics 55 (1983), 601",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-bert-wang-chak-chan",
      "target": "recipe-cellular-automata-beyond-life",
      "kind": "contribution",
      "role": "Later continuous-CA model",
      "detail": "Introduced Lenia, a cellular-automaton system with continuous space-time-state and a generalized local rule.",
      "source": "https://arxiv.org/abs/1812.05433",
      "sourceLabel": "Chan, Lenia—Biology of Artificial Life (2018 preprint; 2019 publication)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-sebastien-truchet",
      "target": "recipe-truchet-tiles",
      "kind": "contribution",
      "role": "1704 tile study",
      "detail": "Studied combinations of square tiles divided diagonally into contrasting triangles in Mémoire sur les combinaisons.",
      "source": "https://www.newsroom.hlf-foundation.org/blog/article/truchet-tilings/",
      "sourceLabel": "Heidelberg Laureate Forum Foundation, Truchet Tilings",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-cyril-stanley-smith",
      "target": "recipe-truchet-tiles",
      "kind": "contribution",
      "role": "1987 expansion / exposition",
      "detail": "Revisited Truchet's work in Leonardo and discussed alternative motifs including paired quarter-circle arcs.",
      "source": "https://www.newsroom.hlf-foundation.org/blog/article/truchet-tilings/",
      "sourceLabel": "Heidelberg Laureate Forum Foundation, Truchet Tilings",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-pauline-boucher",
      "target": "recipe-truchet-tiles",
      "kind": "contribution",
      "role": "1987 translation",
      "detail": "Translated Truchet's original text for the Leonardo publication that brought it to a later audience.",
      "source": "https://www.newsroom.hlf-foundation.org/blog/article/truchet-tilings/",
      "sourceLabel": "Heidelberg Laureate Forum Foundation, Truchet Tilings",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-hao-wang",
      "target": "recipe-wang-tiles",
      "kind": "contribution",
      "role": "1961 formal system",
      "detail": "Introduced the combinatorial tile problem in Proving Theorems by Pattern Recognition—II.",
      "source": "https://onlinelibrary.wiley.com/doi/abs/10.1002/j.1538-7305.1961.tb03975.x",
      "sourceLabel": "Wang, Bell System Technical Journal 40 (1961), 1–41",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-michael-f-cohen",
      "target": "recipe-wang-tiles",
      "kind": "contribution",
      "role": "2003 graphics use · coauthor",
      "detail": "Coauthored a stochastic Wang-tile method for efficiently constructing nonperiodic textures, patterns, and geometry.",
      "source": "https://graphics.uni-konstanz.de/publikationen/Cohen2003WangTilesImage/index.html",
      "sourceLabel": "Cohen, Shade, Hiller & Deussen, ACM TOG (2003); author-hosted institutional page",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jonathan-shade",
      "target": "recipe-wang-tiles",
      "kind": "contribution",
      "role": "2003 graphics use · coauthor",
      "detail": "Coauthored the Wang-tile graphics method for continuous nonperiodic image and texture generation.",
      "source": "https://graphics.uni-konstanz.de/publikationen/Cohen2003WangTilesImage/index.html",
      "sourceLabel": "Cohen, Shade, Hiller & Deussen, ACM TOG (2003); author-hosted institutional page",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-stefan-hiller",
      "target": "recipe-wang-tiles",
      "kind": "contribution",
      "role": "2003 graphics use · coauthor",
      "detail": "Coauthored the stochastic tiling and tile-filling methods presented in the 2003 graphics paper.",
      "source": "https://graphics.uni-konstanz.de/publikationen/Cohen2003WangTilesImage/index.html",
      "sourceLabel": "Cohen, Shade, Hiller & Deussen, ACM TOG (2003); author-hosted institutional page",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-oliver-deussen",
      "target": "recipe-wang-tiles",
      "kind": "contribution",
      "role": "2003 graphics use · coauthor",
      "detail": "Coauthored the graphics method applying edge-coded tiles to textures, sample distributions, and geometry.",
      "source": "https://graphics.uni-konstanz.de/publikationen/Cohen2003WangTilesImage/index.html",
      "sourceLabel": "Cohen, Shade, Hiller & Deussen, ACM TOG (2003); author-hosted institutional page",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-evgraf-s-fedorov",
      "target": "recipe-wallpaper-groups",
      "kind": "contribution",
      "role": "Early classification",
      "detail": "The IUCr history credits Fedorov with the first description of the 17 plane symmetry groups in 1890 or 1891.",
      "source": "https://www.iucr.org/news/newsletter/volume-33/number-5/appeal-of-symmetry",
      "sourceLabel": "International Union of Crystallography, Appeal of Symmetry (2025)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-george-polya",
      "target": "recipe-wallpaper-groups",
      "kind": "contribution",
      "role": "1924 independent classification",
      "detail": "Enumerated the 17 plane symmetry groups and illustrated each with a tiling, helping connect the mathematics to decorative art.",
      "source": "https://www.iucr.org/news/newsletter/volume-33/number-5/appeal-of-symmetry",
      "sourceLabel": "International Union of Crystallography, Appeal of Symmetry (2025)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-m-c-escher",
      "target": "recipe-wallpaper-groups",
      "kind": "contribution",
      "role": "Later artistic use",
      "detail": "Studied Pólya's diagrams and used a tiling derived from that study in Development I.",
      "source": "https://www.iucr.org/news/newsletter/volume-33/number-5/appeal-of-symmetry",
      "sourceLabel": "International Union of Crystallography, Appeal of Symmetry (2025)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-peter-j-lu",
      "target": "recipe-girih-islamic-star-patterns",
      "kind": "contribution",
      "role": "2007 geometric analysis",
      "detail": "Coauthored a study interpreting medieval girih designs through decorated polygonal tiles and self-similar transformations.",
      "source": "https://peterlu.org/research/islamic_tilings",
      "sourceLabel": "Author research page and Science paper",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-paul-j-steinhardt",
      "target": "recipe-girih-islamic-star-patterns",
      "kind": "contribution",
      "role": "2007 geometric analysis",
      "detail": "Coauthored the study of decagonal and nearly quasicrystalline order in medieval Islamic architectural patterns.",
      "source": "https://peterlu.org/research/islamic_tilings",
      "sourceLabel": "Author research page and Science paper",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-gulru-necipoglu",
      "target": "recipe-girih-islamic-star-patterns",
      "kind": "contribution",
      "role": "Historical scholarship",
      "detail": "Authored The Topkapı Scroll, a historical study of geometry and ornament in Islamic architecture.",
      "source": "https://www.getty.edu/publications/resources/virtuallibrary/9780892363353.pdf",
      "sourceLabel": "Getty, The Topkapı Scroll (1995)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-mohammad-al-asad",
      "target": "recipe-girih-islamic-star-patterns",
      "kind": "contribution",
      "role": "Contributing scholar",
      "detail": "Contributed the essay on the geometry of muqarnas to The Topkapı Scroll.",
      "source": "https://www.getty.edu/publications/resources/virtuallibrary/9780892363353.pdf",
      "sourceLabel": "Getty, The Topkapı Scroll (1995)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-roger-penrose",
      "target": "recipe-penrose-aperiodic",
      "kind": "contribution",
      "role": "1970s tilings",
      "detail": "Developed the aperiodic tilings bearing his name and described his construction in 1974.",
      "source": "https://www.ams.org/journals/notices/202308/noti2759/noti2759.html?adat=September+2023&cat=feature&galt=feature&pdffile=rnoti-p1179.pdf&pdfissue=202308&trk=2759",
      "sourceLabel": "AMS Notices, September 2023",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-berger",
      "target": "recipe-penrose-aperiodic",
      "kind": "contribution",
      "role": "Earlier tiling theory",
      "detail": "Authored the 1966 proof that the general domino tiling problem is undecidable.",
      "source": "https://www.ams.org/journals/notices/196701/196701FullIssue.pdf",
      "sourceLabel": "AMS publisher notice for Memoir 66",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-h-s-m-coxeter",
      "target": "recipe-hyperbolic-tilings-p-q",
      "kind": "contribution",
      "role": "Mathematical bridge",
      "detail": "Sent Escher a symmetry paper whose hyperbolic tiling diagram helped inspire the Circle Limit series.",
      "source": "https://www.ams.org/samplings/feature-column/fcarc-circle-limit",
      "sourceLabel": "AMS, How Did Escher Do It?",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-m-c-escher",
      "target": "recipe-hyperbolic-tilings-p-q",
      "kind": "contribution",
      "role": "Artistic interpretation",
      "detail": "Studied Coxeter’s diagram and translated hyperbolic repetition into his Circle Limit woodcuts.",
      "source": "https://www.ams.org/samplings/feature-column/fcarc-circle-limit",
      "sourceLabel": "AMS, How Did Escher Do It?",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-henri-poincare",
      "target": "recipe-hyperbolic-tilings-p-q",
      "kind": "contribution",
      "role": "Disk-model namesake",
      "detail": "The AMS account describes the unit-disk model of hyperbolic geometry as attributed to Poincaré.",
      "source": "https://www.ams.org/samplings/feature-column/fcarc-circle-limit",
      "sourceLabel": "AMS, How Did Escher Do It?",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-aristid-lindenmayer",
      "target": "recipe-l-systems",
      "kind": "contribution",
      "role": "1968 growth formalism",
      "detail": "Developed formal growth models for cellular interactions, including branching filaments.",
      "source": "https://www0.cs.ucl.ac.uk/staff/p.bentley/teaching/L6_reading/lsystems.pdf",
      "sourceLabel": "Lindenmayer, Journal of Theoretical Biology (1968), institutional copy",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-przemys-aw-prusinkiewicz",
      "target": "recipe-l-systems",
      "kind": "contribution",
      "role": "1986 graphical method",
      "detail": "Presented turtle interpretation of L-system strings to generate fractal curves and plant-like pictures.",
      "source": "https://algorithmicbotany.org/papers/graphical.gi86.html",
      "sourceLabel": "Author publication page, Graphics Interface 1986",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-edwin-catmull",
      "target": "recipe-recursive-subdivision",
      "kind": "contribution",
      "role": "1978 surface subdivision",
      "detail": "Coauthored a recursive method producing B-spline surfaces on meshes of arbitrary topology.",
      "source": "https://people.eecs.berkeley.edu/~sequin/CS284/PAPERS/CatmullClark_SDSurf.pdf",
      "sourceLabel": "Catmull and Clark, Computer-Aided Design (1978), Berkeley-hosted original",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-james-clark",
      "target": "recipe-recursive-subdivision",
      "kind": "contribution",
      "role": "1978 surface subdivision",
      "detail": "Coauthored the generalization of recursive bicubic B-spline subdivision to arbitrary mesh topology.",
      "source": "https://people.eecs.berkeley.edu/~sequin/CS284/PAPERS/CatmullClark_SDSurf.pdf",
      "sourceLabel": "Catmull and Clark, Computer-Aided Design (1978), Berkeley-hosted original",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-john-e-hutchinson",
      "target": "recipe-chaos-game-ifs",
      "kind": "contribution",
      "role": "1981 mathematical foundation",
      "detail": "Developed a rigorous theory of self-similar sets and measures generated by finite families of contractions.",
      "source": "https://maths-people.anu.edu.au/~john/Assets/Research%20Papers/fractals_self-similarity.pdf",
      "sourceLabel": "Hutchinson, Fractals and Self Similarity (1981), author copy",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-michael-barnsley",
      "target": "recipe-chaos-game-ifs",
      "kind": "contribution",
      "role": "Chaos-game research",
      "detail": "Coauthored a theorem showing when a chaos-game orbit yields an attractor for a general iterated function system.",
      "source": "https://arxiv.org/abs/1005.0322",
      "sourceLabel": "Barnsley and Vince, The Chaos Game on a General Iterated Function System",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-andrew-vince",
      "target": "recipe-chaos-game-ifs",
      "kind": "contribution",
      "role": "Chaos-game research",
      "detail": "Coauthored the general chaos-game theorem, including settings beyond contractive IFS.",
      "source": "https://arxiv.org/abs/1005.0322",
      "sourceLabel": "Barnsley and Vince, The Chaos Game on a General Iterated Function System",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-alain-fournier",
      "target": "recipe-fractal-fracture",
      "kind": "contribution",
      "role": "1982 stochastic subdivision · coauthor",
      "detail": "Coauthored recursive stochastic subdivision methods for rendering rough curves and surfaces.",
      "source": "https://ohiostate.pressbooks.pub/app/uploads/sites/45/2017/09/stochastic-fournier.pdf",
      "sourceLabel": "Fournier, Fussell & Carpenter · Computer Rendering of Stochastic Models (1982)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-donald-fussell",
      "target": "recipe-fractal-fracture",
      "kind": "contribution",
      "role": "1982 stochastic subdivision · coauthor",
      "detail": "Coauthored recursive stochastic subdivision methods for rendering rough curves and surfaces.",
      "source": "https://ohiostate.pressbooks.pub/app/uploads/sites/45/2017/09/stochastic-fournier.pdf",
      "sourceLabel": "Fournier, Fussell & Carpenter · Computer Rendering of Stochastic Models (1982)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-loren-carpenter",
      "target": "recipe-fractal-fracture",
      "kind": "contribution",
      "role": "1982 stochastic subdivision · coauthor",
      "detail": "Coauthored recursive stochastic subdivision methods for rendering rough curves and surfaces.",
      "source": "https://ohiostate.pressbooks.pub/app/uploads/sites/45/2017/09/stochastic-fournier.pdf",
      "sourceLabel": "Fournier, Fussell & Carpenter · Computer Rendering of Stochastic Models (1982)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-edward-n-lorenz",
      "target": "recipe-strange-attractors",
      "kind": "contribution",
      "role": "1963 nonlinear model",
      "detail": "Demonstrated unstable nonperiodic trajectories in a simplified deterministic convection model.",
      "source": "https://journals.ametsoc.org/doi/abs/10.1175/1520-0469%281963%29020%3C0130%3Adnf%3E2.0.CO%3B2",
      "sourceLabel": "Lorenz, Deterministic Nonperiodic Flow (1963)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-david-ruelle",
      "target": "recipe-strange-attractors",
      "kind": "contribution",
      "role": "1971 attractor theory",
      "detail": "Coauthored a proposed mechanism for turbulence in dissipative systems using strange attractors.",
      "source": "https://www.ihes.fr/~ruelle/PUBLICATIONS/%5B29%5D.pdf",
      "sourceLabel": "Ruelle and Takens, On the Nature of Turbulence (1971)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-floris-takens",
      "target": "recipe-strange-attractors",
      "kind": "contribution",
      "role": "1971 attractor theory",
      "detail": "Coauthored the mathematical turbulence proposal describing strange attractors.",
      "source": "https://www.ihes.fr/~ruelle/PUBLICATIONS/%5B29%5D.pdf",
      "sourceLabel": "Ruelle and Takens, On the Nature of Turbulence (1971)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jules-lissajous",
      "target": "recipe-harmonographs-lissajous",
      "kind": "contribution",
      "role": "1850s vibration studies",
      "detail": "Developed an optical method for studying vibrations associated with the curves named after him.",
      "source": "https://collection.sciencemuseumgroup.org.uk/objects/co60446/sympalmograph-in-fitted-box",
      "sourceLabel": "Science Museum Group, Sympalmograph collection record",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-john-browning",
      "target": "recipe-harmonographs-lissajous",
      "kind": "contribution",
      "role": "Drawing-instrument maker",
      "detail": "Made the circa-1877 sympalmograph, a harmonograph variant drawing combined perpendicular harmonic motions.",
      "source": "https://collection.sciencemuseumgroup.org.uk/objects/co60446/sympalmograph-in-fitted-box",
      "sourceLabel": "Science Museum Group, Sympalmograph collection record",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-zach-lieberman",
      "target": "recipe-harmonographs-lissajous",
      "kind": "contribution",
      "role": "Teaching · Lissajous figures in C++",
      "detail": "Authored the openFrameworks animation chapter, including a Lissajous section demonstrating different angular rates for horizontal and vertical motion. A contemporary teaching contribution; Jules Antoine Lissajous remains credited for the historical curves.",
      "source": "https://openframeworks.cc/ofBook/chapters/animation.html#lissajous-figures",
      "sourceLabel": "ofBook · animation chapter by Zach Lieberman",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-troy-shinbrot",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1992 pendulum experiment",
      "detail": "Coauthored an experimental and numerical demonstration of sensitive dependence in a double pendulum.",
      "source": "https://www.yorke.umd.edu/Yorke_papers_most_cited_and_post2000/1992-04-Wisdom_Shinbrot_AmerJPhys_double_pendulum.pdf",
      "sourceLabel": "Shinbrot, Grebogi, Wisdom and Yorke, American Journal of Physics (1992)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-celso-grebogi",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1992 pendulum experiment",
      "detail": "Coauthored the double-pendulum study measuring exponential growth of initially small separations.",
      "source": "https://www.yorke.umd.edu/Yorke_papers_most_cited_and_post2000/1992-04-Wisdom_Shinbrot_AmerJPhys_double_pendulum.pdf",
      "sourceLabel": "Shinbrot, Grebogi, Wisdom and Yorke, American Journal of Physics (1992)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jack-wisdom",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1992 pendulum experiment",
      "detail": "Coauthored the comparison between measured double-pendulum motion and numerical simulations.",
      "source": "https://www.yorke.umd.edu/Yorke_papers_most_cited_and_post2000/1992-04-Wisdom_Shinbrot_AmerJPhys_double_pendulum.pdf",
      "sourceLabel": "Shinbrot, Grebogi, Wisdom and Yorke, American Journal of Physics (1992)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-james-a-yorke",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1992 pendulum experiment",
      "detail": "Coauthored the laboratory demonstration of chaotic double-pendulum motion.",
      "source": "https://www.yorke.umd.edu/Yorke_papers_most_cited_and_post2000/1992-04-Wisdom_Shinbrot_AmerJPhys_double_pendulum.pdf",
      "sourceLabel": "Shinbrot, Grebogi, Wisdom and Yorke, American Journal of Physics (1992)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-josh-barnes",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1986 N-body algorithm",
      "detail": "Coauthored a hierarchical tree algorithm for efficiently calculating gravitational forces among many bodies.",
      "source": "https://www.nature.com/articles/324446a0",
      "sourceLabel": "Barnes and Hut, Nature (1986)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-piet-hut",
      "target": "recipe-double-pendulum-n-body-trails",
      "kind": "contribution",
      "role": "1986 N-body algorithm",
      "detail": "Coauthored the recursive spatial-subdivision method now called the Barnes–Hut algorithm.",
      "source": "https://www.nature.com/articles/324446a0",
      "sourceLabel": "Barnes and Hut, Nature (1986)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-clifford-a-pickover",
      "target": "recipe-orbit-traps",
      "kind": "contribution",
      "role": "Epsilon-cross precursor",
      "detail": "Developed the epsilon-cross method identified by Carlson as a precursor to his 3-D stalk rendering.",
      "source": "https://www.sciencedirect.com/science/article/abs/pii/S0097849399001235",
      "sourceLabel": "Carlson, Computers & Graphics (1999), introduction",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-paul-w-carlson",
      "target": "recipe-orbit-traps",
      "kind": "contribution",
      "role": "Artistic rendering methods",
      "detail": "Presented two artistic orbit-trap rendering methods for Newton M-set fractals and described extensions of Pickover’s approach.",
      "source": "https://www.sciencedirect.com/science/article/abs/pii/S0097849399001235",
      "sourceLabel": "Carlson, Computers & Graphics (1999)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-l-cook",
      "target": "recipe-poisson-disk-blue-noise",
      "kind": "contribution",
      "role": "1986 graphics sampling",
      "detail": "Showed how appropriately nonuniform sampling turns structured aliasing into less objectionable noise.",
      "source": "https://graphics.pixar.com/library/StochasticSampling/",
      "sourceLabel": "Cook, Stochastic Sampling in Computer Graphics (1986), Pixar archive",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-bridson",
      "target": "recipe-poisson-disk-blue-noise",
      "kind": "contribution",
      "role": "2007 fast sampler",
      "detail": "Presented a linear-time Poisson-disk sampler using an active list, local candidates and a background grid.",
      "source": "https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf",
      "sourceLabel": "Bridson, ACM SIGGRAPH 2007 Sketches",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-w-floyd",
      "target": "recipe-dithering-as-art",
      "kind": "contribution",
      "role": "1976 error diffusion",
      "detail": "Coauthored An Adaptive Algorithm for Spatial Greyscale, the paper associated with Floyd–Steinberg dithering.",
      "source": "https://isgwww.cs.uni-magdeburg.de/~stefans/npr/entry-Floyd-1976-AAS.html",
      "sourceLabel": "University of Magdeburg bibliography for Floyd and Steinberg (1976)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-louis-steinberg",
      "target": "recipe-dithering-as-art",
      "kind": "contribution",
      "role": "1976 error diffusion",
      "detail": "Coauthored the spatial-greyscale algorithm jointly credited as Floyd–Steinberg dithering.",
      "source": "https://isgwww.cs.uni-magdeburg.de/~stefans/npr/entry-Floyd-1976-AAS.html",
      "sourceLabel": "University of Magdeburg bibliography for Floyd and Steinberg (1976)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-donald-e-knuth",
      "target": "recipe-dithering-as-art",
      "kind": "contribution",
      "role": "1987 dot diffusion",
      "detail": "Published Digital Halftones by Dot Diffusion, another documented route from continuous tones to discrete marks.",
      "source": "https://profiles.stanford.edu/donald-knuth",
      "sourceLabel": "Stanford profile publication record",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-golan-levin",
      "target": "recipe-dithering-as-art",
      "kind": "contribution",
      "role": "Teaching · Code as Creative Medium co-author",
      "detail": "Co-authored the creative-coding book and its shared example collection, including this random-dot dithering exercise. The repository credits assistance from Lingdong Huang, Tatyana Mustakos, Cassie Scheirer, and Xinyi (Joyce) Wang. This is a teaching credit, not sole implementation or invention.",
      "source": "https://github.com/golanlevin/exercises/tree/main/12_image/04_random_dot_dithering",
      "sourceLabel": "Code as Creative Medium · example and repository credits",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "recipe-dithering-as-art",
      "kind": "contribution",
      "role": "Teaching · Code as Creative Medium co-author",
      "detail": "Co-authored the creative-coding book and its shared example collection, including this random-dot dithering exercise. The repository credits assistance from Lingdong Huang, Tatyana Mustakos, Cassie Scheirer, and Xinyi (Joyce) Wang. This is a teaching credit, not sole implementation or invention.",
      "source": "https://github.com/golanlevin/exercises/tree/main/12_image/04_random_dot_dithering",
      "sourceLabel": "Code as Creative Medium · example and repository credits",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-robert-w-floyd",
      "target": "recipe-halftone-systems",
      "kind": "contribution",
      "role": "Error-diffusion coauthor",
      "detail": "Coauthored the 1976 spatial-greyscale paper underlying Floyd–Steinberg error diffusion.",
      "source": "https://isgwww.cs.uni-magdeburg.de/~stefans/npr/entry-Floyd-1976-AAS.html",
      "sourceLabel": "University of Magdeburg: Floyd and Steinberg (1976)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-louis-steinberg",
      "target": "recipe-halftone-systems",
      "kind": "contribution",
      "role": "Error-diffusion coauthor",
      "detail": "Coauthored An Adaptive Algorithm for Spatial Greyscale with Robert Floyd.",
      "source": "https://jglobal.jst.go.jp/en/detail?JGLOBAL_ID=201002004108891171",
      "sourceLabel": "Japan Science and Technology Agency: 1976 publication record",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-bryce-e-bayer",
      "target": "recipe-halftone-systems",
      "kind": "contribution",
      "role": "Ordered-dithering contributor",
      "detail": "Authored the 1973 paper An Optimum Method for Two-Level Rendition of Continuous-Tone Pictures.",
      "source": "https://ndlsearch.ndl.go.jp/en/books/R100000136-I1570009749134624128",
      "sourceLabel": "National Diet Library: Bayer (1973)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-bosch",
      "target": "recipe-tsp-art-scribble-fill",
      "kind": "contribution",
      "role": "TSP-art co-originator",
      "detail": "Developed continuous-line TSP drawings with Adrianne Herman, then coauthored the 2005 improvements with Craig Kaplan.",
      "source": "https://cs.uwaterloo.ca/~csk/publications/Papers/kaplan_bosch_2005.pdf",
      "sourceLabel": "Kaplan and Bosch: TSP Art (2005)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-adrianne-herman",
      "target": "recipe-tsp-art-scribble-fill",
      "kind": "contribution",
      "role": "TSP-art co-originator",
      "detail": "Coauthored Continuous Line Drawings via the Traveling Salesman Problem with Robert Bosch in 2004.",
      "source": "https://www.math.uwaterloo.ca/tsp/data/art/",
      "sourceLabel": "University of Waterloo: TSP Art Instances",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-craig-s-kaplan",
      "target": "recipe-tsp-art-scribble-fill",
      "kind": "contribution",
      "role": "Later algorithm contributor",
      "detail": "Coauthored TSP Art, introducing improved city distributions based on stippling and ordered dithering.",
      "source": "https://cs.uwaterloo.ca/~csk/publications/Papers/kaplan_bosch_2005.pdf",
      "sourceLabel": "Kaplan and Bosch: TSP Art (2005)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-adrian-secord",
      "target": "recipe-weighted-voronoi-stippling",
      "kind": "contribution",
      "role": "Named-method author",
      "detail": "Presented image-based stippling using weighted centroidal Voronoi diagrams in 2002.",
      "source": "https://www.cs.ubc.ca/labs/imager/tr/2002/secord2002b/secord.2002b.pdf",
      "sourceLabel": "Secord: Weighted Voronoi Stippling (2002)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-daniel-shiffman",
      "target": "recipe-circle-packing-grown",
      "kind": "contribution",
      "role": "Later educator",
      "detail": "Demonstrated growing circles with boundary and overlap tests in Coding Challenge 50.",
      "source": "https://thecodingtrain.com/challenges/50-animated-circle-packing",
      "sourceLabel": "The Coding Train: Circle Packing",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-marius-watz",
      "target": "recipe-circle-packing-grown",
      "kind": "contribution",
      "role": "Artist / tutorial influence",
      "detail": "Shiffman's grown-circle tutorial explicitly introduces Watz's circle-packing work as a reference.",
      "source": "https://thecodingtrain.com/challenges/50-animated-circle-packing",
      "sourceLabel": "The Coding Train: Circle Packing, introductory credit",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-georgy-voronoy",
      "target": "recipe-voronoi-delaunay-operated-on",
      "kind": "contribution",
      "role": "Mathematical foundation",
      "detail": "Studied the tessellations now known as Voronoi diagrams in his geometry-of-numbers work.",
      "source": "https://mathshistory.st-andrews.ac.uk/Biographies/Voronoy/",
      "sourceLabel": "University of St Andrews: Georgy Voronoy",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-boris-delaunay",
      "target": "recipe-voronoi-delaunay-operated-on",
      "kind": "contribution",
      "role": "Mathematical foundation",
      "detail": "Authored the 1934 empty-sphere paper Sur la sphère vide, dedicated to Georges Voronoï.",
      "source": "https://www.mathnet.ru/php/archive.phtml?jrnid=im&option_lang=&paperid=4937&wshow=paper",
      "sourceLabel": "Math-Net: Delaunay (1934)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-joseph-b-kruskal",
      "target": "recipe-minimum-spanning-tree-relative-neighborhood-graphs",
      "kind": "contribution",
      "role": "MST algorithm contributor",
      "detail": "Published On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem in 1956.",
      "source": "https://cir.nii.ac.jp/crid/1363107368257159424",
      "sourceLabel": "CiNii / AMS: Kruskal (1956)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-godfried-t-toussaint",
      "target": "recipe-minimum-spanning-tree-relative-neighborhood-graphs",
      "kind": "contribution",
      "role": "RNG method author",
      "detail": "Defined the relative neighbourhood graph and proved its relationship to the MST and Delaunay triangulation in 1980.",
      "source": "https://www-cgrl.cs.mcgill.ca/~godfried/teaching/mir-reading-assignments/RNG.pdf",
      "sourceLabel": "Toussaint: The Relative Neighbourhood Graph of a Finite Planar Set (1980)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-lawrence-g-roberts",
      "target": "recipe-hidden-line-3d-2d",
      "kind": "contribution",
      "role": "Early hidden-line researcher",
      "detail": "His 1963 MIT thesis describes removing back lines and line segments obscured by other objects.",
      "source": "https://dspace.mit.edu/entities/publication/840d8056-9b54-4bd4-b16f-2f3d8296386e",
      "sourceLabel": "MIT: Machine Perception of Three-Dimensional Solids (1963)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-johan-gielis",
      "target": "recipe-superformula-supershapes",
      "kind": "contribution",
      "role": "Superformula author",
      "detail": "Introduced the Superformula as a single parametric equation for many natural and abstract shapes in 2003.",
      "source": "https://pubmed.ncbi.nlm.nih.gov/21659124/",
      "sourceLabel": "Gielis: American Journal of Botany (2003)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-paul-bourke",
      "target": "recipe-superformula-supershapes",
      "kind": "contribution",
      "role": "Later 3D expositor",
      "detail": "Published 3D supershape examples and software based on Gielis's equations and a spherical product.",
      "source": "https://www.paulbourke.org/geometry/supershape/",
      "sourceLabel": "Paul Bourke: Supershapes (July 2003)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-carlos-cruz-diez",
      "target": "recipe-moire",
      "kind": "contribution",
      "role": "Artist / optical exploration",
      "detail": "His 1964 Chromointerférence arose from sliding one repeated-line image over another transparent line pattern.",
      "source": "https://cruz-diez.com/works/chromointerference/",
      "sourceLabel": "Cruz-Diez official archive: Chromointerférence (1964)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-golan-levin",
      "target": "recipe-moire",
      "kind": "contribution",
      "role": "Teaching · Code as Creative Medium co-author",
      "detail": "Co-authored the creative-coding book and its shared example collection, including this moiré exercise. The repository credits assistance from Lingdong Huang, Tatyana Mustakos, Cassie Scheirer, and Xinyi (Joyce) Wang. This is a teaching credit, not sole implementation or invention.",
      "source": "https://github.com/golanlevin/exercises/tree/main/02_iteration/14_moire_patterns",
      "sourceLabel": "Code as Creative Medium · example and repository credits",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "recipe-moire",
      "kind": "contribution",
      "role": "Teaching · Code as Creative Medium co-author",
      "detail": "Co-authored the creative-coding book and its shared example collection, including this moiré exercise. The repository credits assistance from Lingdong Huang, Tatyana Mustakos, Cassie Scheirer, and Xinyi (Joyce) Wang. This is a teaching credit, not sole implementation or invention.",
      "source": "https://github.com/golanlevin/exercises/tree/main/02_iteration/14_moire_patterns",
      "sourceLabel": "Code as Creative Medium · example and repository credits",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-gene-kogan",
      "target": "recipe-moire",
      "kind": "contribution",
      "role": "Artistic use · Interference (2012)",
      "detail": "Used repeated deltoid curves to produce moiré patterns in Interference. His account says the original code was lost; the work documents an artistic application, not invention of moiré.",
      "source": "https://genekogan.com/works/interference/",
      "sourceLabel": "Artist’s work record · Interference",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-thomas-young",
      "target": "recipe-wave-interference",
      "kind": "contribution",
      "role": "Physical foundation",
      "detail": "Explained light interference through the superposition of waves in his early-nineteenth-century work.",
      "source": "https://spark.iop.org/collections/superposition",
      "sourceLabel": "Institute of Physics: Superposition",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-jim-blinn",
      "target": "recipe-metaballs-implicit-fields",
      "kind": "contribution",
      "role": "Blobby-modeling pioneer",
      "detail": "His 1982 paper renders surfaces formed by summed Gaussian density distributions.",
      "source": "https://www.microsoft.com/en-us/research/?p=154282",
      "sourceLabel": "Microsoft Research: A Generalization of Algebraic Surface Drawing",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-paul-bourke",
      "target": "recipe-metaballs-implicit-fields",
      "kind": "contribution",
      "role": "Later expositor",
      "detail": "Explains implicit-surface blending under the names metaballs, blobbies, and soft objects.",
      "source": "https://paulbourke.net/geometry/implicitsurf/",
      "sourceLabel": "Paul Bourke: Implicit Surfaces",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-benoit-mandelbrot",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Mathematical foundation coauthor",
      "detail": "Coauthored the 1968 study Fractional Brownian Motions, Fractional Noises and Applications.",
      "source": "https://epubs.siam.org/doi/10.1137/1010093",
      "sourceLabel": "Mandelbrot and Van Ness: SIAM Review (1968)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-john-w-van-ness",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Mathematical foundation coauthor",
      "detail": "Coauthored the 1968 paper formalizing and studying fractional Brownian motions.",
      "source": "https://epubs.siam.org/doi/10.1137/1010093",
      "sourceLabel": "Mandelbrot and Van Ness: SIAM Review (1968)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-ken-perlin",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Procedural graphics contributor",
      "detail": "Introduced a procedural noise-based image synthesizer including synthetic turbulence in 1985.",
      "source": "https://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/readings/perlin85_imagesynthesizer.pdf",
      "sourceLabel": "Perlin: An Image Synthesizer (1985)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-f-kenton-musgrave",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Ridged-noise contributor / terrain coauthor",
      "detail": "Developed ridged multifractal noise used for mountainous terrain, as credited in LightWave's texture documentation.",
      "source": "https://docs.lightwave3d.com/2025/3d-textures.html",
      "sourceLabel": "LightWave 2025 documentation: Ridged Multifractal",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-craig-e-kolb",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Fractal-terrain coauthor",
      "detail": "Coauthored the 1989 paper on fractal terrain noise synthesis, erosion, and rendering.",
      "source": "https://citeseerx.ist.psu.edu/document?doi=8af1ba21a954c910994f5ad599777640452a3d6b&repid=rep1&type=pdf",
      "sourceLabel": "Musgrave, Kolb and Mace (1989)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-robert-s-mace",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Fractal-terrain coauthor",
      "detail": "Coauthored the 1989 paper on fractal terrain noise synthesis, erosion, and rendering.",
      "source": "https://citeseerx.ist.psu.edu/document?doi=8af1ba21a954c910994f5ad599777640452a3d6b&repid=rep1&type=pdf",
      "sourceLabel": "Musgrave, Kolb and Mace (1989)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "recipe-fbm-ridged-turbulent",
      "kind": "contribution",
      "role": "Toolmaking · p5.js creator",
      "detail": "Created p5.js, whose noiseDetail API exposes octave and falloff controls for layered Perlin noise. This credits the enabling platform, not invention of fBm, implementation of every noise function, or all ridged/turbulent variants.",
      "source": "https://p5js.org/reference/p5/noiseDetail/",
      "sourceLabel": "p5.js · octave and falloff documentation",
      "dates": null,
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-john-c-hart",
      "target": "recipe-sdf-raymarching",
      "kind": "contribution",
      "role": "Sphere-tracing author",
      "detail": "His 1996 sphere-tracing paper advances rays using geometric distance bounds that avoid crossing the surface.",
      "source": "https://experts.illinois.edu/en/publications/sphere-tracing-a-geometric-method-for-the-antialiased-ray-tracing/",
      "sourceLabel": "University of Illinois: Sphere Tracing (1996)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-inigo-quilez",
      "target": "recipe-sdf-raymarching",
      "kind": "contribution",
      "role": "Later shader artist / expositor",
      "detail": "Presented distance-field rendering techniques in Rendering Worlds with Two Triangles.",
      "source": "https://iquilezles.org/articles/nvscene2008/rwwtt.pdf",
      "sourceLabel": "Iñigo Quilez: Rendering Worlds with Two Triangles (2008)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-james-p-crutchfield",
      "target": "recipe-feedback-buffers",
      "kind": "contribution",
      "role": "Video-feedback researcher",
      "detail": "Modeled video-feedback dynamics and reproduced their behavior with digital simulations in 1984.",
      "source": "https://csc.ucdavis.edu/~cmg/papers/Crutchfield.PhysicaD1984.pdf",
      "sourceLabel": "Crutchfield: Space-Time Dynamics in Video Feedback (1984)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-steina-vasulka",
      "target": "recipe-feedback-buffers",
      "kind": "contribution",
      "role": "Early video-feedback artist",
      "detail": "Described her early video-feedback experiments in a preserved 1997 interview.",
      "source": "https://www.vasulkainterviews.org/",
      "sourceLabel": "Vasulka Interviews: Steina on video feedback (1997)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-woody-vasulka",
      "target": "recipe-feedback-buffers",
      "kind": "contribution",
      "role": "Early video-feedback artist",
      "detail": "Discussed analog feedback loops and feedback in digital devices in a preserved 1996 interview.",
      "source": "https://www.vasulkainterviews.org/",
      "sourceLabel": "Vasulka Interviews: Woody on feedback (1996)",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-olivia-jack",
      "target": "recipe-feedback-buffers",
      "kind": "contribution",
      "role": "Later tool creator / artist",
      "detail": "Created Hydra, a live-coding video-synthesis environment with feedback influences documented in its source repository.",
      "source": "https://github.com/hydra-synth/hydra",
      "sourceLabel": "Hydra: official repository and contributor credits",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-frieder-nake",
      "target": "person-georg-nees",
      "kind": "documented path",
      "role": "Shared exhibition",
      "detail": "Exhibited together in Stuttgart in 1965.",
      "source": "https://dam.org/museum/artists_ui/artists/nake-frieder/",
      "sourceLabel": "Digital Art Museum",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-casey-reas",
      "target": "person-ben-fry",
      "kind": "documented path",
      "role": "Co-creation",
      "detail": "Started Processing together in 2001.",
      "source": "https://www.processing.org/people/",
      "sourceLabel": "Processing project history",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-casey-reas",
      "target": "person-daniel-shiffman",
      "kind": "documented path",
      "role": "Shared organization",
      "detail": "Helped establish the Processing Foundation in 2012.",
      "source": "https://www.processing.org/people/",
      "sourceLabel": "Processing project history",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-ben-fry",
      "target": "person-daniel-shiffman",
      "kind": "documented path",
      "role": "Shared organization",
      "detail": "Helped establish the Processing Foundation in 2012.",
      "source": "https://www.processing.org/people/",
      "sourceLabel": "Processing project history",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-golan-levin",
      "target": "person-zach-lieberman",
      "kind": "documented path",
      "role": "Teaching + collaboration",
      "detail": "Lieberman identifies Levin as his professor and a collaborator after graduation.",
      "source": "https://openframeworks.cc/ofBook/chapters/foreword.html",
      "sourceLabel": "Lieberman’s first-person account",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-craig-reynolds",
      "target": "person-daniel-shiffman",
      "kind": "documented path",
      "role": "Technique → teaching",
      "detail": "Shiffman explicitly builds on Reynolds’s steering and boids work.",
      "source": "https://natureofcode.com/autonomous-agents/",
      "sourceLabel": "The Nature of Code",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-ken-perlin",
      "target": "person-daniel-shiffman",
      "kind": "documented path",
      "role": "Technique → teaching",
      "detail": "The Nature of Code uses Perlin noise to construct flow fields.",
      "source": "https://natureofcode.com/autonomous-agents/",
      "sourceLabel": "The Nature of Code",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-ken-perlin",
      "target": "person-tyler-hobbs",
      "kind": "documented path",
      "role": "Technique → writing",
      "detail": "Hobbs explains Perlin noise as one way to build flow fields.",
      "source": "https://www.tylerxhobbs.com/words/flow-fields",
      "sourceLabel": "Hobbs’s Flow Fields essay",
      "dates": null,
      "checked": null,
      "review": "imported"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident",
      "dates": "2002–2003",
      "source": "https://eyebeam.org/artists/zach-lieberman/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Research Resident",
      "dates": "2007–2008",
      "source": "https://eyebeam.org/artists/zach-lieberman/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident",
      "dates": "2002–2003",
      "source": "https://eyebeam.org/artists/golan-levin/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident",
      "dates": "2013",
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Rapid Response Fellow",
      "dates": "2020",
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Resident",
      "dates": "2010",
      "source": "https://eyebeam.org/artists/kyle-mcdonald/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Rapid Response Fellow",
      "dates": "2020",
      "source": "https://eyebeam.org/artists/kyle-mcdonald/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-taeyoon-choi",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Research Resident",
      "dates": "2008",
      "source": "https://eyebeam.org/artists/taeyoon-choi/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-taeyoon-choi",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Resident",
      "dates": "2011",
      "source": "https://eyebeam.org/artists/taeyoon-choi/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident",
      "dates": "2015",
      "source": "https://eyebeam.org/artists/tega-brain/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Rapid Response Fellow",
      "dates": "2020",
      "source": "https://eyebeam.org/artists/tega-brain/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-yury-gitman",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident",
      "dates": "2003",
      "source": "https://eyebeam.org/artists/yury-gitman/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-mit",
      "kind": "education",
      "role": "BS Computer Science; BS Art and Design",
      "dates": null,
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-ucla",
      "kind": "education",
      "role": "MFA",
      "dates": null,
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-ucla",
      "kind": "teaching",
      "role": "Professor, Design Media Arts",
      "dates": null,
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-p5-js",
      "kind": "toolmaking",
      "role": "Creator",
      "dates": null,
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-processing-foundation",
      "kind": "service",
      "role": "Board member",
      "dates": "2015–2021",
      "source": "https://eyebeam.org/artists/lauren-lee-mccarthy/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-carnegie-mellon-university",
      "kind": "teaching",
      "role": "Professor of Electronic Art",
      "dates": null,
      "source": "https://eyebeam.org/artists/golan-levin/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-studio-for-creative-inquiry",
      "kind": "service",
      "role": "Director",
      "dates": "2009–2022",
      "source": "https://eyebeam.org/artists/golan-levin/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-openframeworks",
      "kind": "toolmaking",
      "role": "Co-creator",
      "dates": null,
      "source": "https://eyebeam.org/artists/zach-lieberman/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-school-for-poetic-computation",
      "kind": "education",
      "role": "Co-founder",
      "dates": null,
      "source": "https://eyebeam.org/artists/zach-lieberman/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-taeyoon-choi",
      "target": "entity-school-for-poetic-computation",
      "kind": "education",
      "role": "Co-founder; curriculum development",
      "dates": null,
      "source": "https://eyebeam.org/artists/taeyoon-choi/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-nyu-itp",
      "kind": "teaching",
      "role": "Former adjunct professor",
      "dates": null,
      "source": "https://eyebeam.org/artists/kyle-mcdonald/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-openframeworks",
      "kind": "service",
      "role": "Former community manager",
      "dates": null,
      "source": "https://eyebeam.org/artists/kyle-mcdonald/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-nyu-integrated-design-media",
      "kind": "teaching",
      "role": "Industry Associate Professor",
      "dates": null,
      "source": "https://eyebeam.org/artists/tega-brain/",
      "sourceLabel": "Eyebeam artist record",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-yury-gitman",
      "target": "entity-nyu-itp",
      "kind": "education",
      "role": "Master’s degree",
      "dates": "2002",
      "source": "https://www.newschool.edu/parsons/faculty/yuri-gitman/",
      "sourceLabel": "The New School — Parsons faculty profile",
      "checked": "2026-09-28",
      "detail": "Degree year explicitly given under Degrees Held on the official faculty profile.",
      "review": "checked"
    },
    {
      "person": "person-yury-gitman",
      "target": "entity-georgia-tech",
      "kind": "education",
      "role": "BS Science, Technology and Culture",
      "dates": "1999",
      "source": "https://www.newschool.edu/parsons/faculty/yuri-gitman/",
      "sourceLabel": "The New School — Parsons faculty profile",
      "checked": "2026-09-28",
      "detail": "Degree year explicitly given under Degrees Held on the official faculty profile.",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-code-as-creative-medium",
      "kind": "publication",
      "role": "Co-author",
      "dates": "2021",
      "source": "https://mitpress.mit.edu/9780262362030/code-as-creative-medium/",
      "sourceLabel": "Institutional source",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-code-as-creative-medium",
      "kind": "publication",
      "role": "Co-author",
      "dates": "2021",
      "source": "https://mitpress.mit.edu/9780262362030/code-as-creative-medium/",
      "sourceLabel": "Institutional source",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-daniel-shiffman",
      "target": "entity-nyu-itp",
      "kind": "teaching",
      "role": "Professor",
      "dates": null,
      "source": "https://tisch.nyu.edu/about/directory/itp/1984778605",
      "sourceLabel": "Institutional source",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-gene-kogan",
      "target": "entity-eyebeam",
      "kind": "residency",
      "role": "Project Resident · jointly with Lisa Kori",
      "dates": "2015",
      "source": "https://eyebeam.org/artists/lisa-kori-gene-kogan/",
      "sourceLabel": "Eyebeam · Lisa Kori & Gene Kogan",
      "checked": "2026-09-27",
      "review": "checked"
    },
    {
      "person": "person-michael-barnsley",
      "target": "entity-georgia-tech",
      "kind": "teaching",
      "role": "Joined faculty as Associate Professor",
      "dates": "1979",
      "source": "https://math.gatech.edu/sites/default/files/documents/georgiatech-school-of-math-history_1.pdf",
      "sourceLabel": "Georgia Tech School of Mathematics history, p. 96",
      "checked": "2026-09-28",
      "detail": "The institutional history dates his associate-professor appointment to 1979. This is an appointment date, not a claim of continuous or current employment.",
      "review": "checked"
    },
    {
      "person": "person-ben-fry",
      "target": "entity-mit",
      "kind": "education",
      "role": "Doctoral degree, MIT Media Laboratory",
      "dates": null,
      "source": "https://www.benfry.com/about/",
      "sourceLabel": "Ben Fry — artist biography",
      "checked": "2026-09-28",
      "detail": "The biography identifies a doctorate from the Aesthetics + Computation Group and says his dissertation was completed in 2004.",
      "review": "checked"
    },
    {
      "person": "person-ben-fry",
      "target": "entity-mit",
      "kind": "teaching",
      "role": "Lecturer",
      "dates": "Since 2016",
      "source": "https://www.benfry.com/about/",
      "sourceLabel": "Ben Fry — artist biography",
      "checked": "2026-09-28",
      "detail": "The artist biography explicitly dates his MIT teaching as a lecturer from 2016; the MIT Architecture directory also lists him as a lecturer.",
      "review": "checked"
    },
    {
      "person": "person-ben-fry",
      "target": "entity-carnegie-mellon-university",
      "kind": "teaching",
      "role": "Nierenberg Chair of Design",
      "dates": "2006–2007",
      "source": "https://www.benfry.com/about/",
      "sourceLabel": "Ben Fry — artist biography",
      "checked": "2026-09-28",
      "detail": "The biography identifies the Carnegie Mellon School of Design appointment for the 2006–2007 school year.",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-mit",
      "kind": "education",
      "role": "SB Art and Design; SM Media Arts and Sciences",
      "dates": "1994; 2000",
      "source": "https://news.mit.edu/2006/artsnews",
      "sourceLabel": "MIT News — Arts News, January 23, 2006",
      "checked": "2026-09-28",
      "detail": "MIT identifies the two degree awards separately: undergraduate Art and Design in 1994 and graduate Media Arts and Sciences in 2000.",
      "review": "checked"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-mit",
      "kind": "teaching",
      "role": "Adjunct Associate Professor of Media Arts and Sciences",
      "dates": null,
      "source": "https://www.media.mit.edu/people/zachl/overview/",
      "sourceLabel": "MIT Media Lab — faculty profile",
      "checked": "2026-09-28",
      "detail": "MIT lists Lieberman with this faculty title and the Future Sketches group. The page does not establish the appointment start date.",
      "review": "checked"
    },
    {
      "person": "person-casey-reas",
      "target": "entity-mit",
      "kind": "education",
      "role": "Master’s degree, Media Arts and Sciences",
      "dates": null,
      "source": "https://gray.reas.com/information",
      "sourceLabel": "Casey Reas — artist biography",
      "checked": "2026-09-28",
      "detail": "The artist biography names the MIT master’s degree. No degree date is assigned from the linked archive’s date range.",
      "review": "checked"
    },
    {
      "person": "person-james-p-crutchfield",
      "target": "entity-university-of-california-berkeley",
      "kind": "research",
      "role": "Research Physicist, Physics Department",
      "dates": "1985–1997",
      "source": "https://simons.berkeley.edu/people/jim-crutchfield",
      "sourceLabel": "UC Berkeley Simons Institute — Jim Crutchfield profile",
      "checked": "2026-09-28",
      "detail": "The biography says he was a Berkeley research physicist from 1985 before moving to the Santa Fe Institute in 1997. This is a research appointment, not a Berkeley degree.",
      "review": "checked"
    },
    {
      "person": "person-donald-e-knuth",
      "target": "entity-stanford-university",
      "kind": "teaching",
      "role": "Fletcher Jones Professor of Computer Science, Emeritus",
      "dates": null,
      "source": "https://mathematics.stanford.edu/people/donald-knuth",
      "sourceLabel": "Stanford Mathematics — faculty profile",
      "checked": "2026-09-28",
      "detail": "The Stanford directory lists an emeritus appointment; it does not establish an active teaching load or a start date.",
      "review": "checked"
    },
    {
      "person": "person-robert-bridson",
      "target": "entity-stanford-university",
      "kind": "education",
      "role": "PhD",
      "dates": "2003",
      "source": "https://www.cs.ubc.ca/~rbridson/",
      "sourceLabel": "Robert Bridson — UBC faculty page",
      "checked": "2026-09-28",
      "detail": "The faculty page states PhD Stanford 2003 and identifies the dissertation as Computational aspects of dynamic surfaces.",
      "review": "checked"
    },
    {
      "person": "person-robert-bridson",
      "target": "entity-university-of-british-columbia",
      "kind": "teaching",
      "role": "Adjunct Professor, Computer Science",
      "dates": null,
      "source": "https://news.ubc.ca/expert/robert-bridson/",
      "sourceLabel": "UBC News — expert profile",
      "checked": "2026-09-28",
      "detail": "The UBC expert directory lists adjunct status. His faculty page explains that he ceased being a full-time professor in August 2013 but retained adjunct status.",
      "review": "checked"
    },
    {
      "person": "person-craig-s-kaplan",
      "target": "entity-university-of-waterloo",
      "kind": "teaching",
      "role": "Professor, Computer Science",
      "dates": null,
      "source": "https://uwaterloo.ca/computer-science/contacts/craig-s-kaplan",
      "sourceLabel": "University of Waterloo — faculty profile",
      "checked": "2026-09-28",
      "detail": "The Cheriton School of Computer Science directory lists Kaplan as Professor; no appointment date is supplied.",
      "review": "checked"
    },
    {
      "person": "person-craig-s-kaplan",
      "target": "entity-university-of-waterloo",
      "kind": "education",
      "role": "BMath",
      "dates": "1996",
      "source": "https://uwaterloo.ca/computer-science/contacts/craig-s-kaplan",
      "sourceLabel": "University of Waterloo — faculty profile",
      "checked": "2026-09-28",
      "detail": "The degrees section records the Waterloo BMath separately from his later University of Washington degrees.",
      "review": "checked"
    },
    {
      "person": "person-przemys-aw-prusinkiewicz",
      "target": "entity-university-of-calgary",
      "kind": "teaching",
      "role": "Professor Emeritus, Computer Science",
      "dates": null,
      "source": "https://science.ucalgary.ca/computer-science/contacts/faculty-members",
      "sourceLabel": "University of Calgary — Computer Science faculty directory",
      "checked": "2026-09-28",
      "detail": "The current department directory places Prusinkiewicz in its Emeriti section. Older faculty biographies label him Professor without noting retirement.",
      "review": "checked"
    },
    {
      "person": "person-godfried-t-toussaint",
      "target": "entity-mcgill-university",
      "kind": "teaching",
      "role": "Professor, School of Computer Science; later Professor Emeritus",
      "dates": "1972–2007; emeritus from 2007",
      "source": "https://cgm.cs.mcgill.ca/~godfried/cv/bio.html",
      "sourceLabel": "Godfried Toussaint — McGill-hosted biography",
      "checked": "2026-09-28",
      "detail": "The biography dates his teaching and research at McGill from 1972 and emeritus appointment to September 1, 2007. This is a historical record; McGill’s 2022 newsletter confirms his death in 2019.",
      "review": "checked"
    },
    {
      "person": "person-frieder-nake",
      "target": "entity-university-of-bremen",
      "kind": "teaching",
      "role": "Professor of Computer Graphics and Interactive Systems",
      "dates": "1972–2024",
      "source": "https://www.uni-bremen.de/fb3/fachbereich/news-detailansicht/sein-letztes-seminar-der-dienstaelteste-professor-der-universitaet-bremen-frieder-nake-verabschiedet-sich",
      "sourceLabel": "University of Bremen — retirement profile, February 2, 2024",
      "checked": "2026-09-28",
      "detail": "The university dates his appointment to 1972 and his final seminar and retirement to January 30, 2024.",
      "review": "checked"
    },
    {
      "person": "person-oliver-deussen",
      "target": "entity-university-of-konstanz",
      "kind": "teaching",
      "role": "Professor for Visual Computing",
      "dates": "Since April 2003",
      "source": "https://www.cgmi.uni-konstanz.de/en/persons/prof-dr-oliver-deussen/",
      "sourceLabel": "University of Konstanz — Visual Computing faculty profile",
      "checked": "2026-09-28",
      "detail": "The university profile explicitly dates this appointment from April 2003. Evidence was available in the search index; direct page retrieval returned an error.",
      "review": "checked"
    },
    {
      "person": "person-roger-penrose",
      "target": "entity-university-of-oxford",
      "kind": "teaching",
      "role": "Emeritus Rouse Ball Professor of Mathematics",
      "dates": null,
      "source": "https://www.ox.ac.uk/news/2020-10-06-oxford-mathematician-roger-penrose-jointly-wins-nobel-prize-physics",
      "sourceLabel": "University of Oxford — Nobel Prize announcement, October 6, 2020",
      "checked": "2026-09-28",
      "detail": "The university announcement identifies the emeritus professorship and Wadham emeritus fellowship. This record describes the documented emeritus appointment without implying current teaching.",
      "review": "checked"
    },
    {
      "person": "person-alan-turing",
      "target": "entity-university-of-cambridge",
      "kind": "education",
      "role": "Undergraduate mathematics, King’s College",
      "dates": "1931–1934",
      "source": "https://turingarchive.kings.cam.ac.uk/about-alan-turing",
      "sourceLabel": "King’s College Cambridge — Turing Digital Archive",
      "checked": "2026-09-28",
      "detail": "The college archive dates matriculation to 1931 and graduation with distinction to 1934. The separate fellowship awarded in 1935 is not folded into the degree relationship.",
      "review": "checked"
    },
    {
      "person": "person-yury-gitman",
      "target": "entity-parsons-school-of-design",
      "kind": "teaching",
      "role": "Part-time Assistant Professor; teaching since 2003",
      "dates": "Since 2003",
      "source": "https://www.newschool.edu/parsons/faculty/yuri-gitman/",
      "sourceLabel": "The New School — Parsons faculty profile",
      "checked": "2026-09-28",
      "detail": "The current title is Part-time Assistant Professor. The biography dates teaching at Parsons from 2003; it does not say he held that rank continuously since 2003 or verify the recalled number of Eyebeam-linked sessions.",
      "review": "checked"
    },
    {
      "person": "person-vera-molnar",
      "target": "entity-fortran",
      "role": "Used for computer drawings",
      "context": "Interruptions; museum account of her computer practice.",
      "source": "https://www.mudam.com/de/vera-molnar",
      "sourceLabel": "Mudam · Vera Molnár",
      "evidence": [
        {
          "url": "https://www.mudam.com/de/vera-molnar",
          "label": "Mudam · Vera Molnár"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-manfred-mohr",
      "target": "entity-fortran",
      "role": "Programmed in FORTRAN IV",
      "context": "Early plotter compositions; artist archive describes learning FORTRAN IV in 1969.",
      "source": "https://emohr.com/paris-1971/meteo.html",
      "sourceLabel": "Mohr · artist archive",
      "evidence": [
        {
          "url": "https://emohr.com/paris-1971/meteo.html",
          "label": "Mohr · artist archive"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "1969",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-manfred-mohr",
      "target": "entity-c",
      "role": "Listed in artwork software",
      "context": "space.color.motion / p777; technical record lists C and FORTRAN.",
      "source": "https://zkm.de/en/artworks/spacecolormotion",
      "sourceLabel": "ZKM · artwork record",
      "evidence": [
        {
          "url": "https://zkm.de/en/artworks/spacecolormotion",
          "label": "ZKM · artwork record"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-georg-nees",
      "target": "entity-algol",
      "role": "Used for independent drawings",
      "context": "Programs associated with Siemens 2002 and Zuse-Graphomat.",
      "source": "https://zkm.de/en/exhibition/2006/08/georg-nees-the-great-temptation",
      "sourceLabel": "ZKM · Nees exhibition",
      "evidence": [
        {
          "url": "https://zkm.de/en/exhibition/2006/08/georg-nees-the-great-temptation",
          "label": "ZKM · Nees exhibition"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-harold-cohen",
      "target": "entity-c",
      "role": "Earlier AARON implementation",
      "context": "The museum describes a transition from C to Lisp; this is historical, not every AARON version.",
      "source": "https://computerhistory.org/blog/harold-cohen-and-aaron-a-40-year-collaboration/",
      "sourceLabel": "Computer History Museum · AARON history",
      "evidence": [
        {
          "url": "https://computerhistory.org/blog/harold-cohen-and-aaron-a-40-year-collaboration/",
          "label": "Computer History Museum · AARON history"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-harold-cohen",
      "target": "entity-lisp",
      "role": "AARON drawing software",
      "context": "Language named by Cohen in the 1995 interview.",
      "source": "https://computerhistory.org/blog/into-the-archives-a-look-back-with-robotic-artist-harold-cohen/",
      "sourceLabel": "Computer History Museum · Cohen interview",
      "evidence": [
        {
          "url": "https://computerhistory.org/blog/into-the-archives-a-look-back-with-robotic-artist-harold-cohen/",
          "label": "Computer History Museum · Cohen interview"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "1995",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-harold-cohen",
      "target": "entity-cpp",
      "role": "Painting-machine controller",
      "context": "Cohen distinguishes this controller from AARON’s Lisp program.",
      "source": "https://computerhistory.org/blog/into-the-archives-a-look-back-with-robotic-artist-harold-cohen/",
      "sourceLabel": "Computer History Museum · Cohen interview",
      "evidence": [
        {
          "url": "https://computerhistory.org/blog/into-the-archives-a-look-back-with-robotic-artist-harold-cohen/",
          "label": "Computer History Museum · Cohen interview"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "1995",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-casey-reas",
      "target": "entity-processing",
      "role": "Co-creator",
      "context": "Started Processing with the other co-founder in 2001.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "evidence": [
        {
          "url": "https://processing.org/people/",
          "label": "Processing · project history"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2001",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-casey-reas",
      "target": "entity-java",
      "role": "Language association via Processing",
      "context": "Underlying language of the co-created environment; personal use in a particular artwork is not established here.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "evidence": [
        {
          "url": "https://processing.org/people/",
          "label": "Processing · project history"
        },
        {
          "url": "https://processing.org/tutorials/overview/",
          "label": "Processing · Java basis"
        }
      ],
      "confidence": 2,
      "rationale": "Inferred from co-creating Processing and its documented Java basis, not from an inspected artwork implementation.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "inferred"
    },
    {
      "person": "person-ben-fry",
      "target": "entity-processing",
      "role": "Co-creator",
      "context": "Started Processing with the other co-founder in 2001.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "evidence": [
        {
          "url": "https://processing.org/people/",
          "label": "Processing · project history"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2001",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-ben-fry",
      "target": "entity-java",
      "role": "Language association via Processing",
      "context": "Underlying language of the co-created environment; personal use in a particular artwork is not established here.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "evidence": [
        {
          "url": "https://processing.org/people/",
          "label": "Processing · project history"
        },
        {
          "url": "https://processing.org/tutorials/overview/",
          "label": "Processing · Java basis"
        }
      ],
      "confidence": 2,
      "rationale": "Inferred from co-creating Processing and its documented Java basis, not from an inspected artwork implementation.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "inferred"
    },
    {
      "person": "person-daniel-shiffman",
      "target": "entity-processing",
      "role": "Uses and teaches",
      "context": "Earlier Nature of Code edition and Learning Processing.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · Nature of Code introduction",
      "evidence": [
        {
          "url": "https://natureofcode.com/introduction/",
          "label": "Shiffman · Nature of Code introduction"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-daniel-shiffman",
      "target": "entity-p5-js",
      "role": "Uses for teaching examples",
      "context": "Revised Nature of Code edition.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · Nature of Code introduction",
      "evidence": [
        {
          "url": "https://natureofcode.com/introduction/",
          "label": "Shiffman · Nature of Code introduction"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-daniel-shiffman",
      "target": "entity-javascript",
      "role": "Uses for teaching examples",
      "context": "Revised Nature of Code and p5.js teaching.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · Nature of Code introduction",
      "evidence": [
        {
          "url": "https://natureofcode.com/introduction/",
          "label": "Shiffman · Nature of Code introduction"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-p5-js",
      "role": "Creator and former lead",
      "context": "The project credits McCarthy as creator and lead, 2013–2020.",
      "source": "https://p5js.org/about/",
      "sourceLabel": "p5.js · about",
      "evidence": [
        {
          "url": "https://p5js.org/about/",
          "label": "p5.js · about"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2013–2020",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-javascript",
      "role": "Language association via p5.js",
      "context": "The language of the library she created; not a claim about all her artworks.",
      "source": "https://p5js.org/about/",
      "sourceLabel": "p5.js · about",
      "evidence": [
        {
          "url": "https://p5js.org/about/",
          "label": "p5.js · about"
        }
      ],
      "confidence": 2,
      "rationale": "The source identifies both the creator and the JavaScript library. The broader person-to-language connection is inferred.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "inferred"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-openframeworks",
      "role": "Co-creator",
      "context": "Creative-coding toolkit identified in his institutional biography.",
      "source": "https://eyebeam.org/artists/zach-lieberman/",
      "sourceLabel": "Eyebeam · Lieberman",
      "evidence": [
        {
          "url": "https://eyebeam.org/artists/zach-lieberman/",
          "label": "Eyebeam · Lieberman"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-python",
      "role": "Publishes Python utilities",
      "context": "python-utils contains audio, image and machine-learning helpers.",
      "source": "https://github.com/kylemcdonald/python-utils",
      "sourceLabel": "McDonald · python-utils repository",
      "evidence": [
        {
          "url": "https://github.com/kylemcdonald/python-utils",
          "label": "McDonald · python-utils repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-kyle-mcdonald",
      "target": "entity-cpp",
      "role": "Publishes a FaceTracker fork",
      "context": "Repository documents a C++ face-tracking system; fork ownership is not original authorship.",
      "source": "https://github.com/kylemcdonald/FaceTracker",
      "sourceLabel": "McDonald · FaceTracker repository",
      "evidence": [
        {
          "url": "https://github.com/kylemcdonald/FaceTracker",
          "label": "McDonald · FaceTracker repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-processing",
      "role": "Publishes looping-animation templates",
      "context": "Processing templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-p5-js",
      "role": "Publishes looping-animation templates",
      "context": "p5.js templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-processing-py",
      "role": "Publishes looping-animation templates",
      "context": "Processing.py templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-java",
      "role": "Publishes looping-animation templates",
      "context": "Processing (Java) templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-javascript",
      "role": "Publishes looping-animation templates",
      "context": "p5.js (JavaScript) templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-golan-levin",
      "target": "entity-python",
      "role": "Publishes looping-animation templates",
      "context": "Processing.py (Python) templates in the LoopTemplates repository.",
      "source": "https://github.com/golanlevin/LoopTemplates",
      "sourceLabel": "Levin · LoopTemplates repository",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/LoopTemplates",
          "label": "Levin · LoopTemplates repository"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tyler-hobbs",
      "target": "entity-clojure",
      "role": "Describes using",
      "context": "Language used in the generative-art workflow described in his 2018 talk.",
      "source": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
      "sourceLabel": "Hobbs · Code Goes In, Art Comes Out",
      "evidence": [
        {
          "url": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
          "label": "Hobbs · Code Goes In, Art Comes Out"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2018 talk; 2019 publication",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tyler-hobbs",
      "target": "entity-quil",
      "role": "Describes using",
      "context": "Library used in the workflow described in his 2018 talk.",
      "source": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
      "sourceLabel": "Hobbs · Code Goes In, Art Comes Out",
      "evidence": [
        {
          "url": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
          "label": "Hobbs · Code Goes In, Art Comes Out"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2018 talk; 2019 publication",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tyler-hobbs",
      "target": "entity-processing",
      "role": "Describes using",
      "context": "Accessed through Quil in the workflow described in his 2018 talk.",
      "source": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
      "sourceLabel": "Hobbs · Code Goes In, Art Comes Out",
      "evidence": [
        {
          "url": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
          "label": "Hobbs · Code Goes In, Art Comes Out"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2018 talk; 2019 publication",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tyler-hobbs",
      "target": "entity-java",
      "role": "Language association via Quil / Processing",
      "context": "Java underlies the library stack; not a claim of writing an artwork directly in Java.",
      "source": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
      "sourceLabel": "Hobbs · Code Goes In, Art Comes Out",
      "evidence": [
        {
          "url": "https://www.tylerxhobbs.com/words/code-goes-in-art-comes-out",
          "label": "Hobbs · Code Goes In, Art Comes Out"
        }
      ],
      "confidence": 2,
      "rationale": "The artist describes a Clojure/Quil workflow using Processing. Direct Java authorship for a particular work remains unverified.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "inferred"
    },
    {
      "person": "person-joshua-davis",
      "target": "entity-processing",
      "role": "Listed in artwork tools",
      "context": "After You; artist’s technical credits.",
      "source": "https://joshuadavis.com/After-You",
      "sourceLabel": "Joshua Davis Studios · After You",
      "evidence": [
        {
          "url": "https://joshuadavis.com/After-You",
          "label": "Joshua Davis Studios · After You"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-joshua-davis",
      "target": "entity-hype",
      "role": "Listed in artwork tools",
      "context": "After You; artist’s technical credits.",
      "source": "https://joshuadavis.com/After-You",
      "sourceLabel": "Joshua Davis Studios · After You",
      "evidence": [
        {
          "url": "https://joshuadavis.com/After-You",
          "label": "Joshua Davis Studios · After You"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-joshua-davis",
      "target": "entity-glsl",
      "role": "Listed in artwork tools",
      "context": "After You; artist’s technical credits.",
      "source": "https://joshuadavis.com/After-You",
      "sourceLabel": "Joshua Davis Studios · After You",
      "evidence": [
        {
          "url": "https://joshuadavis.com/After-You",
          "label": "Joshua Davis Studios · After You"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-jared-tarbell",
      "target": "entity-processing",
      "role": "Describes recreating a visual process",
      "context": "His published 2018 conference talk describes recreating a process in Processing.",
      "source": "https://beyondtellerrand.com/events/dusseldorf-2018/speakers/jared-tarbell",
      "sourceLabel": "Beyond Tellerrand · Tarbell talk",
      "evidence": [
        {
          "url": "https://beyondtellerrand.com/events/dusseldorf-2018/speakers/jared-tarbell",
          "label": "Beyond Tellerrand · Tarbell talk"
        }
      ],
      "confidence": 3,
      "rationale": "The cited source explicitly names this language or tool for the stated work or practice.",
      "dates": "2018",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-ken-perlin",
      "target": "entity-java",
      "role": "Published reference implementation",
      "context": "Improved Noise reference code; this does not establish the language of the original 1980s implementation.",
      "source": "https://cs.nyu.edu/~perlin/noise/",
      "sourceLabel": "NYU · Perlin reference implementation",
      "evidence": [
        {
          "url": "https://cs.nyu.edu/~perlin/noise/",
          "label": "NYU · Perlin reference implementation"
        }
      ],
      "confidence": 3,
      "rationale": "The primary project page explicitly names the language for this implementation.",
      "dates": "2002",
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-craig-reynolds",
      "target": "entity-java",
      "role": "Published animated diagrams",
      "context": "Steering-behavior diagrams identified as Java-based on his own project page.",
      "source": "https://www.red3d.com/cwr/steer/",
      "sourceLabel": "Reynolds · steering behaviors",
      "evidence": [
        {
          "url": "https://www.red3d.com/cwr/steer/",
          "label": "Reynolds · steering behaviors"
        }
      ],
      "confidence": 3,
      "rationale": "The primary project page explicitly names the language for this implementation.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-craig-reynolds",
      "target": "entity-cpp",
      "role": "Documents a steering implementation",
      "context": "OpenSteer implementation of steering behaviors; not a claim about every version of boids.",
      "source": "https://www.red3d.com/cwr/steer/",
      "sourceLabel": "Reynolds · steering behaviors",
      "evidence": [
        {
          "url": "https://www.red3d.com/cwr/steer/",
          "label": "Reynolds · steering behaviors"
        }
      ],
      "confidence": 3,
      "rationale": "The primary project page explicitly names the language for this implementation.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-gene-kogan",
      "target": "entity-processing",
      "role": "Artist-authored shader examples",
      "context": "Processing shader examples (2013), a personal collection and tutorial.",
      "source": "https://genekogan.com/works/processing-shader-examples/",
      "sourceLabel": "Gene Kogan · Processing shader examples",
      "evidence": [
        {
          "url": "https://genekogan.com/works/processing-shader-examples/",
          "label": "Gene Kogan · Processing shader examples"
        }
      ],
      "confidence": 3,
      "rationale": "The source explicitly documents this tool or language in the stated contribution; no claim is made about every artwork.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-gene-kogan",
      "target": "entity-glsl",
      "role": "Artist-authored shader examples",
      "context": "Processing shader examples (2013), a personal collection and tutorial.",
      "source": "https://genekogan.com/works/processing-shader-examples/",
      "sourceLabel": "Gene Kogan · Processing shader examples",
      "evidence": [
        {
          "url": "https://genekogan.com/works/processing-shader-examples/",
          "label": "Gene Kogan · Processing shader examples"
        }
      ],
      "confidence": 3,
      "rationale": "The source explicitly documents this tool or language in the stated contribution; no claim is made about every artwork.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-processing",
      "role": "Co-author · educational examples",
      "context": "Shared Code as Creative Medium example collection; repository credits additional assistants and ports.",
      "source": "https://github.com/golanlevin/exercises",
      "sourceLabel": "Code as Creative Medium · repository credits",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/exercises",
          "label": "Code as Creative Medium · repository credits"
        }
      ],
      "confidence": 3,
      "rationale": "The source explicitly documents this tool or language in the stated contribution; no claim is made about every artwork.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-tega-brain",
      "target": "entity-javascript",
      "role": "Co-author · educational examples",
      "context": "Shared JavaScript/p5.js examples accompanying Code as Creative Medium; not sole authorship of each port.",
      "source": "https://github.com/golanlevin/exercises",
      "sourceLabel": "Code as Creative Medium · repository credits",
      "evidence": [
        {
          "url": "https://github.com/golanlevin/exercises",
          "label": "Code as Creative Medium · repository credits"
        }
      ],
      "confidence": 3,
      "rationale": "The source explicitly documents this tool or language in the stated contribution; no claim is made about every artwork.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "person": "person-zach-lieberman",
      "target": "entity-cpp",
      "role": "Author · animation tutorial",
      "context": "ofBook animation chapter, including C++ examples for Lissajous figures.",
      "source": "https://openframeworks.cc/ofBook/chapters/animation.html",
      "sourceLabel": "ofBook · Zach Lieberman’s animation chapter",
      "evidence": [
        {
          "url": "https://openframeworks.cc/ofBook/chapters/animation.html",
          "label": "ofBook · Zach Lieberman’s animation chapter"
        }
      ],
      "confidence": 3,
      "rationale": "The source explicitly documents this tool or language in the stated contribution; no claim is made about every artwork.",
      "dates": null,
      "checked": "2026-09-27",
      "kind": "language/tool",
      "review": "checked"
    },
    {
      "kind": "research lineage",
      "role": "Research continued by",
      "inverseRole": "Continues research associated with",
      "detail": "The Visible Language Workshop’s visual-computing research continued in Maeda’s ACG. This is an institutional research lineage, not a teacher–student claim.",
      "source": "https://www.processingfoundation.org/blog/a-modern-prometheus/",
      "sourceLabel": "Reas & Fry · A Modern Prometheus",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-muriel-cooper",
      "target": "person-john-maeda",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "mentorship",
      "role": "Advised",
      "inverseRole": "Studied with",
      "detail": "Fry identifies Maeda as his and Reas’s former advisor at MIT.",
      "source": "https://www.benfry.com/writing/archives/513",
      "sourceLabel": "Ben Fry · former advisor John Maeda",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-john-maeda",
      "target": "person-casey-reas",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "founding",
      "role": "Co-founded",
      "inverseRole": "Co-founded by",
      "detail": "Helped establish the nonprofit supporting the Processing ecosystem.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "dates": "2012",
      "checked": "2026-09-28",
      "person": "person-casey-reas",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "mentorship",
      "role": "Advised",
      "inverseRole": "Studied with",
      "detail": "Fry identifies Maeda as his and Reas’s former advisor at MIT.",
      "source": "https://www.benfry.com/writing/archives/513",
      "sourceLabel": "Ben Fry · former advisor John Maeda",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-john-maeda",
      "target": "person-ben-fry",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "founding",
      "role": "Co-founded",
      "inverseRole": "Co-founded by",
      "detail": "Helped establish the nonprofit supporting the Processing ecosystem.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "dates": "2012",
      "checked": "2026-09-28",
      "person": "person-ben-fry",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "founding",
      "role": "Co-founded",
      "inverseRole": "Co-founded by",
      "detail": "Joined Fry and Reas in establishing the foundation.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "dates": "2012",
      "checked": "2026-09-28",
      "person": "person-daniel-shiffman",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "toolmaking",
      "role": "Created",
      "inverseRole": "Created by",
      "detail": "A minimal visual-programming platform developed within the ACG.",
      "source": "https://www.processingfoundation.org/blog/a-modern-prometheus/",
      "sourceLabel": "Reas & Fry · A Modern Prometheus",
      "dates": "1999",
      "checked": "2026-09-28",
      "person": "person-john-maeda",
      "target": "entity-design-by-numbers",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "technical lineage",
      "role": "Helped shape",
      "inverseRole": "Builds on",
      "detail": "Teaching and extending DBN informed Reas and Fry’s design of Processing.",
      "source": "https://www.processingfoundation.org/blog/a-modern-prometheus/",
      "sourceLabel": "Reas & Fry · A Modern Prometheus",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-design-by-numbers",
      "target": "entity-processing",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "reinterpretation",
      "role": "Reinterpreted for the web as",
      "inverseRole": "Reinterprets",
      "detail": "Lauren Lee McCarthy initiated p5.js in 2013, adapting Processing’s approach to the web.",
      "source": "https://p5js.org/people/",
      "sourceLabel": "p5.js · project history",
      "dates": "2013",
      "checked": "2026-09-28",
      "subject": "entity-processing",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "stewardship",
      "role": "Stewards",
      "inverseRole": "Stewarded by",
      "detail": "The nonprofit supports the software and its contributor community.",
      "source": "https://processing.org/people/",
      "sourceLabel": "Processing · project history",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-processing-foundation",
      "target": "entity-processing",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "stewardship",
      "role": "Supports",
      "inverseRole": "Supported by",
      "detail": "The library is sustained by contributors with support from the foundation.",
      "source": "https://p5js.org/people/",
      "sourceLabel": "p5.js · project history",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-processing-foundation",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "toolmaking",
      "role": "Created",
      "inverseRole": "Created by",
      "detail": "An open-source browser editor for making art with p5.js.",
      "source": "https://processingfoundation.org/blog/the-soothing-balm-of-uncertainty/",
      "sourceLabel": "Tarakajian & Lim · editor leadership transition",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-cassie-tarakajian",
      "target": "entity-p5-js-web-editor",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "tool integration",
      "role": "Provides a workspace for",
      "inverseRole": "Can be written in",
      "detail": "The editor lets people code p5.js sketches in a browser.",
      "source": "https://processingfoundation.org/blog/the-soothing-balm-of-uncertainty/",
      "sourceLabel": "Tarakajian & Lim · editor leadership transition",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-p5-js-web-editor",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "stewardship",
      "role": "Supports",
      "inverseRole": "Supported by",
      "detail": "Supports the browser-based creative coding tool.",
      "source": "https://processingfoundation.org/blog/the-soothing-balm-of-uncertainty/",
      "sourceLabel": "Tarakajian & Lim · editor leadership transition",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-processing-foundation",
      "target": "entity-p5-js-web-editor",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "service",
      "role": "Editor creator and mentor with",
      "inverseRole": "Supports the editor work of",
      "detail": "The foundation supports the editor and its mentoring work.",
      "source": "https://processingfoundation.org/blog/the-soothing-balm-of-uncertainty/",
      "sourceLabel": "Tarakajian & Lim · editor leadership transition",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-cassie-tarakajian",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Wrote and teaches through",
      "inverseRole": "Written and taught by",
      "detail": "Natural-system simulations taught first through Processing and then through p5.js.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · The Nature of Code introduction",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-daniel-shiffman",
      "target": "entity-the-nature-of-code",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Teaches with",
      "inverseRole": "Taught through",
      "detail": "The introduction distinguishes the earlier Processing edition from the revised p5.js edition.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · The Nature of Code introduction",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-the-nature-of-code",
      "target": "entity-processing",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Teaches with",
      "inverseRole": "Taught through",
      "detail": "The introduction distinguishes the earlier Processing edition from the revised p5.js edition.",
      "source": "https://natureofcode.com/introduction/",
      "sourceLabel": "Shiffman · The Nature of Code introduction",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-the-nature-of-code",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Teaches",
      "inverseRole": "Taught by",
      "detail": "Lecture and lab combine code, critique and design; the lecture was co-taught with Katherine Moriwaki.",
      "source": "https://xin-xin.info/teaching/",
      "sourceLabel": "Xin Xin · teaching archive",
      "dates": "2019–2021",
      "checked": "2026-09-28",
      "person": "person-xin-xin",
      "target": "entity-critical-computation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Teaches with",
      "inverseRole": "Taught through",
      "detail": "Courses introduce programming through p5.js within a critical social and historical context.",
      "source": "https://xin-xin.info/teaching/",
      "sourceLabel": "Xin Xin · teaching archive",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-critical-computation",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Teaches",
      "inverseRole": "Taught by",
      "detail": "A practicum for developing socially engaged code teaching materials.",
      "source": "https://xin-xin.info/teaching/",
      "sourceLabel": "Xin Xin · teaching archive",
      "dates": "2021–2022",
      "checked": "2026-09-28",
      "person": "person-xin-xin",
      "target": "entity-code-decolonized",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "community",
      "role": "Includes mentors from",
      "inverseRole": "Provides mentors for",
      "detail": "The course description names foundation mentors.",
      "source": "https://xin-xin.info/teaching/",
      "sourceLabel": "Xin Xin · teaching archive",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-code-decolonized",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "community",
      "role": "Developed community programs with",
      "inverseRole": "Community programs developed with",
      "detail": "Helped lead Processing Community Day 2019 and Code, Decolonized before the 2024 co-director appointment.",
      "source": "https://processingfoundation.org/blog/announcing-roxana-hadad-and-xin-xin-as-executive-co-directors-of-the-processing-foundation/",
      "sourceLabel": "Processing Foundation · November 2024 announcement",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-xin-xin",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "community",
      "role": "Helped lead",
      "inverseRole": "Coordinated in part by",
      "detail": "Helped lead the global 2019 program.",
      "source": "https://processingfoundation.org/blog/announcing-roxana-hadad-and-xin-xin-as-executive-co-directors-of-the-processing-foundation/",
      "sourceLabel": "Processing Foundation · November 2024 announcement",
      "dates": "2019",
      "checked": "2026-09-28",
      "person": "person-xin-xin",
      "target": "entity-processing-community-day",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "community",
      "role": "Supports",
      "inverseRole": "Supported by",
      "detail": "Supports a network of community-led art-and-code gatherings.",
      "source": "https://processingfoundation.org/",
      "sourceLabel": "Processing Foundation · programs",
      "dates": null,
      "checked": "2026-09-28",
      "subject": "entity-processing-foundation",
      "target": "entity-processing-community-day",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "teaching",
      "role": "Taught Critical Computation at",
      "inverseRole": "Hosted teaching by",
      "detail": "The teaching archive identifies Parsons Design & Technology.",
      "source": "https://xin-xin.info/teaching/",
      "sourceLabel": "Xin Xin · teaching archive",
      "dates": "2020",
      "checked": "2026-09-28",
      "person": "person-xin-xin",
      "target": "entity-parsons-school-of-design",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "pedagogy",
      "role": "Co-authored sound instruction for",
      "inverseRole": "Sound instruction co-authored by",
      "detail": "With Wilm Thoben: playing, analyzing and synthesizing audio.",
      "source": "https://processing.org/tutorials/sound/",
      "sourceLabel": "DuBois & Thoben · Sound",
      "dates": "2014 handbook; online tutorial",
      "checked": "2026-09-28",
      "person": "person-r-luke-dubois",
      "target": "entity-processing",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "service",
      "role": "Advisor and contributor to",
      "inverseRole": "Advisor and contributor",
      "detail": "The foundation lists these roles; the sound tutorial separately establishes his pedagogical contribution.",
      "source": "https://processingfoundation.org/people/r-luke-dubois/",
      "sourceLabel": "Processing Foundation · DuBois profile",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-r-luke-dubois",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "artwork",
      "role": "Created",
      "inverseRole": "Created by",
      "detail": "An Android application recorded phone use; the resulting footage forms an immersive video matrix.",
      "source": "https://www.katehollenbach.com/phonelovesyoutoo/",
      "sourceLabel": "Kate Hollenbach · artwork account",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-kate-hollenbach",
      "target": "entity-phonelovesyoutoo",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "service",
      "role": "Advisor and contributor to",
      "inverseRole": "Advisor and contributor",
      "detail": "The profile also records prior board and mentoring roles; her artwork is documented separately.",
      "source": "https://processingfoundation.org/people/kate-hollenbach/",
      "sourceLabel": "Processing Foundation · Hollenbach profile",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-kate-hollenbach",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "service",
      "role": "Former advisor and contributor to",
      "inverseRole": "Former advisor and contributor",
      "detail": "The foundation records these as past roles, alongside his alternative pedagogy and accessibility work.",
      "source": "https://www.processingfoundation.org/people/taeyoon-choi/",
      "sourceLabel": "Processing Foundation · Choi profile",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-taeyoon-choi",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "maintenance",
      "role": "Led accessibility and contributor work for",
      "inverseRole": "Accessibility and contributor work led by",
      "detail": "Led a documentation accessibility initiative involving coding, writing, design, translation and research. The January 2025 retrospective describes a completed four-year leadership tenure.",
      "source": "https://processingfoundation.org/blog/celebrating-4-years-of-p5js-leadership-with-qianqian-ye/",
      "sourceLabel": "Processing Foundation · Qianqian Ye retrospective",
      "dates": "Four-year tenure, retrospective January 2025",
      "checked": "2026-09-28",
      "person": "person-qianqian-ye",
      "target": "entity-p5-js",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "community",
      "role": "Led p5.js community work with",
      "inverseRole": "p5.js community work led by",
      "detail": "Helped contributors participate in developing and documenting the creative-coding library.",
      "source": "https://processingfoundation.org/blog/celebrating-4-years-of-p5js-leadership-with-qianqian-ye/",
      "sourceLabel": "Processing Foundation · Qianqian Ye retrospective",
      "dates": null,
      "checked": "2026-09-28",
      "person": "person-qianqian-ye",
      "target": "entity-processing-foundation",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "publication",
      "role": "Co-edited",
      "inverseRole": "Co-edited by",
      "detail": "Edited with Nikki Makagiansar; the catalog gathers community-submitted art, code, teaching and recollections.",
      "source": "https://processingfoundation.org/blog/20th-anniversary-processing-community-catalog-out-now/",
      "sourceLabel": "Processing Foundation · catalog publication",
      "dates": "2023",
      "checked": "2026-09-28",
      "person": "person-lauren-lee-mccarthy",
      "target": "entity-processing-community-catalog",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "publication",
      "role": "Co-edited",
      "inverseRole": "Co-edited by",
      "detail": "Edited with Nikki Makagiansar; the catalog gathers community-submitted art, code, teaching and recollections.",
      "source": "https://processingfoundation.org/blog/20th-anniversary-processing-community-catalog-out-now/",
      "sourceLabel": "Processing Foundation · catalog publication",
      "dates": "2023",
      "checked": "2026-09-28",
      "person": "person-casey-reas",
      "target": "entity-processing-community-catalog",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "publication",
      "role": "Co-edited",
      "inverseRole": "Co-edited by",
      "detail": "Edited with Nikki Makagiansar; the catalog gathers community-submitted art, code, teaching and recollections.",
      "source": "https://processingfoundation.org/blog/20th-anniversary-processing-community-catalog-out-now/",
      "sourceLabel": "Processing Foundation · catalog publication",
      "dates": "2023",
      "checked": "2026-09-28",
      "person": "person-qianqian-ye",
      "target": "entity-processing-community-catalog",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "publication",
      "role": "Published",
      "inverseRole": "Published by",
      "detail": "A collection assembled from the community’s 2021 open call.",
      "source": "https://processingfoundation.org/blog/20th-anniversary-processing-community-catalog-out-now/",
      "sourceLabel": "Processing Foundation · catalog publication",
      "dates": "2023",
      "checked": "2026-09-28",
      "subject": "entity-processing-foundation",
      "target": "entity-processing-community-catalog",
      "review": "checked",
      "lineage": true
    },
    {
      "kind": "maintenance",
      "role": "Developer in residence for",
      "inverseRole": "Resident developer",
      "detail": "The foundation’s profile identifies her as Developer in Residence for Processing Java.",
      "source": "https://processingfoundation.org/people/kate-hollenbach/",
      "sourceLabel": "Processing Foundation · Hollenbach profile",
      "dates": "Listed September 2026",
      "checked": "2026-09-28",
      "person": "person-kate-hollenbach",
      "target": "entity-processing",
      "review": "checked",
      "lineage": true
    }
  ]
}
