Monorepo for Aesthetic.Computer aesthetic.computer
at main 41 lines 3.4 kB view raw
1\contentsline {section}{\numberline {1}Introduction}{5}{section.1}% 2\contentsline {section}{\numberline {2}The Processing Model (2001)}{7}{section.2}% 3\contentsline {subsection}{\numberline {2.1}Lifecycle: \texttt {setup()} and \texttt {draw()}}{7}{subsection.2.1}% 4\contentsline {subsection}{\numberline {2.2}Drawing primitives}{8}{subsection.2.2}% 5\contentsline {subsection}{\numberline {2.3}Global scope}{9}{subsection.2.3}% 6\contentsline {section}{\numberline {3}The p5.js Transition (2014)}{10}{section.3}% 7\contentsline {subsection}{\numberline {3.1}Lifecycle preservation}{10}{subsection.3.1}% 8\contentsline {subsection}{\numberline {3.2}Canvas creation}{11}{subsection.3.2}% 9\contentsline {subsection}{\numberline {3.3}Instance mode}{11}{subsection.3.3}% 10\contentsline {subsection}{\numberline {3.4}What changed, what didn't}{12}{subsection.3.4}% 11\contentsline {section}{\numberline {4}The AC Piece API (2021--)}{13}{section.4}% 12\contentsline {subsection}{\numberline {4.1}Five lifecycle functions}{13}{subsection.4.1}% 13\contentsline {subsection}{\numberline {4.2}API injection via destructuring}{15}{subsection.4.2}% 14\contentsline {subsection}{\numberline {4.3}Separation of simulation and rendering}{16}{subsection.4.3}% 15\contentsline {subsection}{\numberline {4.4}Unified event handling}{17}{subsection.4.4}% 16\contentsline {subsection}{\numberline {4.5}Drawing primitives: stateless by default}{19}{subsection.4.5}% 17\contentsline {subsection}{\numberline {4.6}No canvas configuration}{20}{subsection.4.6}% 18\contentsline {section}{\numberline {5}API Surface Comparison}{21}{section.5}% 19\contentsline {subsection}{\numberline {5.1}Naming philosophy}{21}{subsection.5.1}% 20\contentsline {subsection}{\numberline {5.2}Color model}{22}{subsection.5.2}% 21\contentsline {section}{\numberline {6}State Management}{24}{section.6}% 22\contentsline {subsection}{\numberline {6.1}Processing: global variables}{24}{subsection.6.1}% 23\contentsline {subsection}{\numberline {6.2}AC: module-level closures}{24}{subsection.6.2}% 24\contentsline {section}{\numberline {7}The Genealogy}{26}{section.7}% 25\contentsline {subsection}{\numberline {7.1}Design By Numbers (1999)}{26}{subsection.7.1}% 26\contentsline {subsection}{\numberline {7.2}Processing (2001)}{26}{subsection.7.2}% 27\contentsline {subsection}{\numberline {7.3}p5.js (2014)}{27}{subsection.7.3}% 28\contentsline {subsection}{\numberline {7.4}openFrameworks (2005)}{27}{subsection.7.4}% 29\contentsline {subsection}{\numberline {7.5}The instrument turn}{28}{subsection.7.5}% 30\contentsline {section}{\numberline {8}Worked Example: A Bouncing Ball}{29}{section.8}% 31\contentsline {subsection}{\numberline {8.1}Processing}{29}{subsection.8.1}% 32\contentsline {subsection}{\numberline {8.2}p5.js}{30}{subsection.8.2}% 33\contentsline {subsection}{\numberline {8.3}AC}{30}{subsection.8.3}% 34\contentsline {section}{\numberline {9}Design Rationale}{32}{section.9}% 35\contentsline {subsection}{\numberline {9.1}Why five functions?}{32}{subsection.9.1}% 36\contentsline {subsection}{\numberline {9.2}Why inject the API?}{32}{subsection.9.2}% 37\contentsline {subsection}{\numberline {9.3}Why 120Hz simulation?}{33}{subsection.9.3}% 38\contentsline {subsection}{\numberline {9.4}Why no canvas size?}{34}{subsection.9.4}% 39\contentsline {section}{\numberline {10}Extended Lifecycle}{35}{section.10}% 40\contentsline {section}{\numberline {11}Conclusion}{36}{section.11}% 41\contentsfinish