-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.json
1 lines (1 loc) · 318 KB
/
index.json
1
[{"authors":["aporter"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"0fd7b93c4b20a2bc451aca0c23c5397c","permalink":"https://jdaymude.github.io/authors/aporter/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/aporter/","section":"authors","summary":"","tags":null,"title":"Alexandra Porter","type":"authors"},{"authors":["aricha"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"0d27ba5293b91348555874c76c9c5016","permalink":"https://jdaymude.github.io/authors/aricha/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/aricha/","section":"authors","summary":"","tags":null,"title":"Andréa W. Richa","type":"authors"},{"authors":["cscheideler"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"f5f73ed1c96551f4586103eca899444c","permalink":"https://jdaymude.github.io/authors/cscheideler/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/cscheideler/","section":"authors","summary":"","tags":null,"title":"Christian Scheideler","type":"authors"},{"authors":["edemaine"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"788a1851170cf1d2e0fd7a7a5c1e186d","permalink":"https://jdaymude.github.io/authors/edemaine/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/edemaine/","section":"authors","summary":"","tags":null,"title":"Erik D. Demaine","type":"authors"},{"authors":["ikostitsyna"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"50b35ec7ca405c3322256aa9ba085596","permalink":"https://jdaymude.github.io/authors/ikostitsyna/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/ikostitsyna/","section":"authors","summary":"","tags":null,"title":"Irina Kostitsyna","type":"authors"},{"authors":["jweber"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"da26e9cfb12f372319d6d94d13cfe19a","permalink":"https://jdaymude.github.io/authors/jweber/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jweber/","section":"authors","summary":"","tags":null,"title":"Jamison W. Weber","type":"authors"},{"authors":["jcalumbaugh"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"b0b39c394912a4dad46bd2abe40ecce0","permalink":"https://jdaymude.github.io/authors/jcalumbaugh/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jcalumbaugh/","section":"authors","summary":"","tags":null,"title":"John Calvin Alumbaugh","type":"authors"},{"authors":["jbriones"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"dd601abae184ae6a922b48dd0d6be091","permalink":"https://jdaymude.github.io/authors/jbriones/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jbriones/","section":"authors","summary":"","tags":null,"title":"Joseph L. Briones","type":"authors"},{"authors":["jdaymude"],"categories":null,"content":"I am an Assistant Professor in the School of Computing and Augmented Intelligence and the Biodesign Center for Biocomputing, Security, and Society at Arizona State University. I research algorithmic theory for the efficient coordination and characterization of collective emergent behavior in biological, social, and engineered complex systems. I leverage several areas of computer science — including distributed computing, stochastic processes, swarm intelligence, and bio-inspired algorithms — to participate in interdisciplinary research on theoretical immunology, microbiomic ecology, active matter physics, dynamic networks, and programmable matter systems.\nMy faith as a Christian shapes how I see the world and my place in it. I view my research as a venue to ask questions that matter, to seek solutions that serve others' needs instead of exploiting their wants, and to foster environments of discourse that value curiosity and mutual respect above the weaponization of knowledge. I look forward to a career of commitment to students of diverse backgrounds and to a holistic integration of science, faith, and human flourishing.\nIf you\u0026rsquo;re interested in working with me, take a look at our open positions.\n","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"c0a06a22bce3656483eafef6ab309aba","permalink":"https://jdaymude.github.io/authors/jdaymude/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jdaymude/","section":"authors","summary":"I am an Assistant Professor in the School of Computing and Augmented Intelligence and the Biodesign Center for Biocomputing, Security, and Society at Arizona State University. I research algorithmic theory for the efficient coordination and characterization of collective emergent behavior in biological, social, and engineered complex systems.","tags":null,"title":"Joshua J. Daymude","type":"authors"},{"authors":["khinnenthal"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"4aaced071c52143a48bbda56c7c016f1","permalink":"https://jdaymude.github.io/authors/khinnenthal/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/khinnenthal/","section":"authors","summary":"","tags":null,"title":"Kristian Hinnenthal","type":"authors"},{"authors":["mpatitz"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"bdd543d3d3885ba74b99facfd542365a","permalink":"https://jdaymude.github.io/authors/mpatitz/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/mpatitz/","section":"authors","summary":"","tags":null,"title":"Matthew J. Patitz","type":"authors"},{"authors":["rgmyr"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"4c0cd0af92955e6d7100c3c252ed14bf","permalink":"https://jdaymude.github.io/authors/rgmyr/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/rgmyr/","section":"authors","summary":"","tags":null,"title":"Robert Gmyr","type":"authors"},{"authors":["tstrothmann"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"d6a7ef04ec7b39ff53016a24cae19ff6","permalink":"https://jdaymude.github.io/authors/tstrothmann/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/tstrothmann/","section":"authors","summary":"","tags":null,"title":"Thim Strothmann","type":"authors"},{"authors":["tchhabra"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"fe088eb885bde6808fc54d3ed4fd33c9","permalink":"https://jdaymude.github.io/authors/tchhabra/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/tchhabra/","section":"authors","summary":"","tags":null,"title":"Tishya Chhabra","type":"authors"},{"authors":["zderakhshandeh"],"categories":null,"content":"","date":1676592000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1676592000,"objectID":"f2b01843dc2c561aff82e0915f5c9345","permalink":"https://jdaymude.github.io/authors/zderakhshandeh/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/zderakhshandeh/","section":"authors","summary":"","tags":null,"title":"Zahra Derakhshandeh","type":"authors"},{"authors":["jgyoung"],"categories":null,"content":"","date":1651449600,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1651449600,"objectID":"90a8f76d9b4d82301f45703de23fa02a","permalink":"https://jdaymude.github.io/authors/jgyoung/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jgyoung/","section":"authors","summary":"","tags":null,"title":"Jean-Gabriel Young","type":"authors"},{"authors":["jrexford"],"categories":null,"content":"","date":1651449600,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1651449600,"objectID":"41bdb956b42129054086bb19a4ecf168","permalink":"https://jdaymude.github.io/authors/jrexford/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/jrexford/","section":"authors","summary":"","tags":null,"title":"Jennifer Rexford","type":"authors"},{"authors":["kleyba"],"categories":null,"content":"","date":1651449600,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1651449600,"objectID":"8143482822f345dc0ac8d7f92e4fb2b5","permalink":"https://jdaymude.github.io/authors/kleyba/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/kleyba/","section":"authors","summary":"","tags":null,"title":"Kirtus G. Leyba","type":"authors"},{"authors":["mnewman"],"categories":null,"content":"","date":1651449600,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1651449600,"objectID":"e241200bdf553ca47e947053171c1d5e","permalink":"https://jdaymude.github.io/authors/mnewman/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/mnewman/","section":"authors","summary":"","tags":null,"title":"M. E. J. Newman","type":"authors"},{"authors":["sforrest"],"categories":null,"content":"","date":1651449600,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1651449600,"objectID":"9673c09e414f60ad390a24b8d2609453","permalink":"https://jdaymude.github.io/authors/sforrest/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/sforrest/","section":"authors","summary":"","tags":null,"title":"Stephanie Forrest","type":"authors"},{"authors":["raxelrod"],"categories":null,"content":"","date":1650499200,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1650499200,"objectID":"da4ea9247ea19836b6408c42e8e07710","permalink":"https://jdaymude.github.io/authors/raxelrod/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/raxelrod/","section":"authors","summary":"","tags":null,"title":"Robert Axelrod","type":"authors"},{"authors":["adaymude"],"categories":null,"content":"","date":1645142400,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1645142400,"objectID":"b84ba859c797190dd22fbe4c67b8710a","permalink":"https://jdaymude.github.io/authors/adaymude/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/adaymude/","section":"authors","summary":"","tags":null,"title":"Anna E. Carson Daymude","type":"authors"},{"authors":["rrochat"],"categories":null,"content":"","date":1645142400,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1645142400,"objectID":"d02e112e4e5591b2df7c9fffb3565749","permalink":"https://jdaymude.github.io/authors/rrochat/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/rrochat/","section":"authors","summary":"","tags":null,"title":"Roger Rochat","type":"authors"},{"authors":["nharasha"],"categories":null,"content":"","date":1637160000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1637160000,"objectID":"a4b51e3112bb885ecddf4db8a5dfaea5","permalink":"https://jdaymude.github.io/authors/nharasha/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/nharasha/","section":"authors","summary":"","tags":null,"title":"Noble C. Harasha","type":"authors"},{"authors":["ryiu"],"categories":null,"content":"","date":1636416000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1636416000,"objectID":"9ed2a4ef0c7a1c5a9ab0bb2a851420a6","permalink":"https://jdaymude.github.io/authors/ryiu/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/ryiu/","section":"authors","summary":"","tags":null,"title":"Ryan Yiu","type":"authors"},{"authors":["bdutta"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"9fe1f2aa453c4dbcbe17c4b995a12795","permalink":"https://jdaymude.github.io/authors/bdutta/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/bdutta/","section":"authors","summary":"","tags":null,"title":"Bahnisikha Dutta","type":"authors"},{"authors":["cgokmen"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"6946d255df9e42ca748d21a18f48162a","permalink":"https://jdaymude.github.io/authors/cgokmen/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/cgokmen/","section":"authors","summary":"","tags":null,"title":"Cem Gökmen","type":"authors"},{"authors":["drandall"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"5175bf62bd234d1a85df47eb43cb90ca","permalink":"https://jdaymude.github.io/authors/drandall/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/drandall/","section":"authors","summary":"","tags":null,"title":"Dana Randall","type":"authors"},{"authors":["dgoldman"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"eef09b2b1f018e8392be35c8b6355840","permalink":"https://jdaymude.github.io/authors/dgoldman/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/dgoldman/","section":"authors","summary":"","tags":null,"title":"Daniel I. Goldman","type":"authors"},{"authors":["eaydin"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"691f539f8e9839167dc6331ca623b5f0","permalink":"https://jdaymude.github.io/authors/eaydin/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/eaydin/","section":"authors","summary":"","tags":null,"title":"Enes Aydin","type":"authors"},{"authors":["mandresarroyo"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"7d2e5035baf71b36eeb49ab7e91c226b","permalink":"https://jdaymude.github.io/authors/mandresarroyo/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/mandresarroyo/","section":"authors","summary":"","tags":null,"title":"Marta Andrés Arroyo","type":"authors"},{"authors":["ravinery"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"ec9e6990014f9be2a85e1fdf33143008","permalink":"https://jdaymude.github.io/authors/ravinery/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/ravinery/","section":"authors","summary":"","tags":null,"title":"Ram Avinery","type":"authors"},{"authors":["rwarkentin"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"b64b01e87f57268acc5b739419751188","permalink":"https://jdaymude.github.io/authors/rwarkentin/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/rwarkentin/","section":"authors","summary":"","tags":null,"title":"Ross Warkentin","type":"authors"},{"authors":["scannon"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"7cf6e979d149597b5b03d16c8c6a4cb1","permalink":"https://jdaymude.github.io/authors/scannon/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/scannon/","section":"authors","summary":"","tags":null,"title":"Sarah Cannon","type":"authors"},{"authors":["sli"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"3c9deee7d9342268cecabded679f245e","permalink":"https://jdaymude.github.io/authors/sli/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/sli/","section":"authors","summary":"","tags":null,"title":"Shengkai Li","type":"authors"},{"authors":["wsavoie"],"categories":null,"content":"","date":1619136000,"expirydate":-62135596800,"kind":"term","lang":"en","lastmod":1619136000,"objectID":"028bf99c53d1a9fe6b5aa2cc8ed9e7a2","permalink":"https://jdaymude.github.io/authors/wsavoie/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/authors/wsavoie/","section":"authors","summary":"","tags":null,"title":"William Savoie","type":"authors"},{"authors":null,"categories":["teaching"],"content":"Overview CSE 598, Fall 2019, CIDSE, Arizona State University Instructor: Joshua J. Daymude Co-Instructor: Andréa W. Richa MW 4:35pm–5:50pm, BYENG 210 We study a cohesive and elegant theory for (1) counting the size of very large sets — e.g., the set of all matchings of a large graph — and (2) randomly sampling from such sets according to a desired distribution. The course is divided into three units: Markov chain fundamentals and approximate counting, analyzing Markov chain mixing times, and applications of MCMC methods.\nThe syllabus is available here (last updated 8/28/19, 7:41pm).\nMy lecture notes (last updated 11/16/19, 7:16pm) are fairly self-contained; Counting, Sampling, and Integrating: Algorithms and Complexity by Jerrum and Markov Chains and Mixing Times by Levin-Peres-Wilmer can be used as references.\nEvaluation Course: 4.54/5. Instructor: 4.81/5.\nSchedule 8/26/19: Course overview. Exact counting, part 1 of 3. 8/28/19: Exact counting, part 2 of 3. 9/2/19: Labor Day, classes excused. 9/4/19: Exact counting, part 3 of 3. 9/9/19: Approximate counting and almost-uniform sampling, part 1 of 2. 9/11/19: Approximate counting and almost-uniform sampling, part 2 of 2. 9/16/19: Introduction to Markov chains. 9/18/19: Example Markov chains, part 1 of 3. Lectures online, sign in with your @asu.edu email to access part 1 and part 2. 9/23/19: Example Markov chains, part 2 of 3. (The Metropolis process.) 9/25/19: Example Markov chains, part 3 of 3. (The Ising Model.) 9/30/19: Coupling, part 1 of 3. (The coupling lemma, random walks on the hypercube.) 10/2/19: Coupling, part 2 of 3. (Random walks on the hypercube, card shuffling, and graph coloring.) 10/7/19: Coupling, part 3 of 3. (Graph coloring.) 10/9/19: Path coupling, part 1 of 2. (Graph coloring.) 10/16/19: Review of Assignment 2. 10/21/19: Path coupling, part 2 of 2. (Graph coloring.) 10/23/19: Conductance, part 1 of 2. (Lazy random walks.) 10/28/19: Conductance, part 2 of 2. (Graph coloring.) Spectral gap methods, part 1 of 2. 10/30/19: Spectral gap methods, part 2 of 2. (Lazy random walks.) 11/4/19: Class canceled. 11/6/19: Canonical paths, part 1 of 2. (Lazy random walks.) 11/11/19: Veteran’s Day, classes excused. 11/13/19: Canonical paths, part 2 of 2 (Sampling weighted random matchings.) 11/18/19: MCMC methods for maximum likelihood estimation in phylogeny. 11/25/19–12/4/19: Project presentations. Assignments Assignment 1: Out August 26, Due September 4. Assignment 2: Out September 30, Due October 11. Assignment 3: Out November 6, Due November 27. Project The project description can be found here. Project proposals are due October 18, while the project report and presentation slides are due November 22.\n","date":1556046360,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1575586620,"objectID":"1051f9a606699a8118c5c35482cc2368","permalink":"https://jdaymude.github.io/course/2019fall-cse598-mcmc/","publishdate":"2019-04-23T12:06:00-07:00","relpermalink":"/course/2019fall-cse598-mcmc/","section":"course","summary":"Fall 2019, Arizona State University. Evaluations: 4.54 | 4.81.","tags":["markov-chains"],"title":"CSE 598: Markov Chain and Monte Carlo Methods","type":"book"},{"authors":["Andréa W. Richa","Christian Scheideler","Joshua J. Daymude","Erik D. Demaine","Irina Kostitsyna","Matthew J. Patitz","John Calvin Alumbaugh","Joseph L. Briones","Kristian Hinnenthal","Jamison W. Weber","Robert Gmyr","Thim Strothmann","Zahra Derakhshandeh","Alexandra Porter","Tishya Chhabra"],"categories":["research"],"content":"Self-Organizing Particle Systems (SOPS) is an abstraction of programmable matter, a substance with the ability to change its physical properties (shape, density, conductivity, etc.) in a programmable fashion. In order for programmable matter to live up to the dream of being an all-purpose \u0026quot;bucket of stuff\u0026quot; deployable for any task at any scale, we need a rich toolbox of algorithmic primitives upon which we can program more complex behaviors. Although the eventual vision is to control a whole mass of programmable matter as a single entity, our toolbox of primitives should be defined at the level of individual \u0026quot;atoms\u0026quot; of programmable matter to enable arbitrary scalability. Thus, we must take a distributed computing approach to defining micro-scale behaviors that collectively induce macro-scale phenomena.\nTowards this goal, self-organizing particle systems abstractly envision programmable matter as an ensemble of tiny computational units called particles. These particles are assumed to be very simple: they have very limited memory, no sense of orientation or direction, and only local movement and communication capabilities. Our formal model for these particle systems is the amoebot model, which provides a theoretical framework for developing and analyzing our distributed algorithms for particle systems.\n","date":1676592000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1676592000,"objectID":"b53fa27f1b56ee6cdd9a3a47da67c933","permalink":"https://jdaymude.github.io/project/sops/","publishdate":"2023-02-17T00:00:00Z","relpermalink":"/project/sops/","section":"project","summary":"Abstracting programmable matter using the *(canonical) amoebot model*. Developing distributed algorithms for tasks of self-organization. Rigorously analyzing these behaviors for provable guarantees on correctness, runtime, and reliability.","tags":["programmable-matter","distributed-algorithms"],"title":"Self-Organizing Particle Systems (SOPS)","type":"project"},{"authors":["Joshua J. Daymude","Andréa W. Richa","Christian Scheideler"],"categories":["research"],"content":"","date":1676592000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1676592000,"objectID":"22732b605c94f9c78204f0b10ccb54f1","permalink":"https://jdaymude.github.io/publication/daymude2023-canonicalamoebot/","publishdate":"2023-02-17T00:00:00Z","relpermalink":"/publication/daymude2023-canonicalamoebot/","section":"publication","summary":"We present the canonical amoebot model, an updated formalization of the amoebot model of programmable matter that standardizes a hierarchy of assumption variants and addresses concurrency. We then demonstrate two approaches to concurrent algorithm design: embedding concurrency control directly, and leveraging a novel concurrency control framework.","tags":["programmable-matter","self-organization","distributed-algorithms","amoebot-model","concurrency","shape-formation"],"title":"The Canonical Amoebot Model: Algorithms and Concurrency Control","type":"publication"},{"authors":["Joseph L. Briones","Tishya Chhabra","Joshua J. Daymude","Andréa W. Richa"],"categories":["research"],"content":"","date":1672790400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1672790400,"objectID":"5f848d00dc1947c9e43e002c9025b456","permalink":"https://jdaymude.github.io/publication/briones2023-3dleader/","publishdate":"2023-01-04T00:00:00Z","relpermalink":"/publication/briones2023-3dleader/","section":"publication","summary":"This paper formally extends the amoebot model of programmable matter to three-dimensional (3D) space using the face-centered cubic lattice. We then give a deterministic distributed algorithm for 2D/3D leader election that elects a leader from among $n$ amoebots in $\\mathcal{O}(n)$ rounds in the sequential setting. Finally, we show that our algorithm can be extended to the asynchronous setting, a first for amoebot leader election algorithms.","tags":["amoebot-model","leader-election","three-dimensional","programmable-matter","self-organization"],"title":"Invited Paper: Asynchronous Deterministic Leader Election in Three-Dimensional Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"When the original Fable was released in 2004, it made waves. As Guildford Games wrote in their eulogy for Lionhead Studios:\n The touchstones for Fable were folklore, humour and a desire to offer the player an experience that didn’t demand too much from them, free of complexities\u0026hellip; Microsoft’s involvement ensured focused marketing in America, but hardly any in the UK, leading it to gaining a substantial fanbase in America. The US audience were beguiled by the fairy tale nature of the game, they applauded the progressive ‘love is love’ message and welcomed Fable into their hearts.\n Ten years and two celebrated sequels later, Fable: Anniversary was released in 2014, updating the Xbox-era graphics with the power of the Xbox 360 and bringing the content of Fable: The Lost Chapters into the fold. Nearly another decade after that (well, seven years later, at Xbox\u0026rsquo;s 2021 not-E3), Playground Games announced a new Fable, which is forever fated to be disambiguated as Fable (202x) by game writers everywhere. So here I am in 2022, having never touched a Fable game, thinking: \u0026ldquo;What an exciting time to cherish an old classic!\u0026rdquo;\nWell folks, mistakes were made.\n In all fairness, when I decided to play Fable: Anniversary, I was braindead-tired from a long day of research and stuck in a hotel room with very poor Wi-Fi and a modest TV screen that was inexplicably tilted slightly upwards towards the ceiling. This was not the vibe for continuing on in the masterwork that is Mass Effect: Legendary Edition, nor for running duos with my wife in Fortnite only to lag out once every five minutes. No, this slumpy, tired-tech vibe was for an eight year-old remaster of an eighteen year-old classic with a single-player narrative and last-last-generation graphics. And that\u0026rsquo;s exactly what Fable: Anniversary shaped up to be.\nI could go on for too long about what didn\u0026rsquo;t age well: clumsy combat mechanics, early difficulty spikes followed by an obscenely long difficulty plateau, poor inventory management, romance with NPCs lacking any personality, \u0026ldquo;powerful\u0026rdquo; female characters with no agency whatsoever\u0026hellip; there\u0026rsquo;s a lot to suffer through, especially from a modern perspective.\nThat being said, I think Fable is delightfully nostalgic in two ways: not taking itself too seriously, and applying that same explorative approach to role-playing moral dichotomies. While the occasional joke is Fable is almost too dumb, the vast majority are good-natured and enjoyable. Just as I was getting annoyed with Fable\u0026rsquo;s excruciatingly long tutorial, the first side quest outside the Hero\u0026rsquo;s Guild was a triple fetch quest to get a series of haircuts that made me look increasingly stupid—as the mockery of all passerby NPCs confirmed—in order to impress a girl. Turns out the girl didn\u0026rsquo;t exist, but her \u0026ldquo;father\u0026rdquo; greatly enjoyed making me look like an idiot. And that\u0026rsquo;s exactly what I was in that instance: fresh out of guild training, ready to take on all of Albion, and already spending all the money I had on haircuts to meet a girl. Good joke!\n Unlike 2007\u0026rsquo;s Mass Effect which treats choices between good and evil with the narrative and relational seriousness that earned that series its glowing reputation, Fable takes a much more whimsical route. Flirt with another person in front of your adoring spouse? That\u0026rsquo;s not even a morally consequential issue. Eat a crunchy chick or sacrifice a human being to Skorm? Those are roughly equally bad. Go on an indiscriminate murdering spree of innocent traders and bloodthirsty bandits? It\u0026rsquo;ll all balance out. Donate a crappy old axe to charity to outweigh all your sins? Sure, why not! As with everything else in Fable, morality is inconsequential—which is not to say it isn\u0026rsquo;t meaningful, but rather that it\u0026rsquo;s a buffet of experiences to be enjoyed.\nHidden in that treatment of morality is a much appreciated bit of gaming wisdom, one that has fallen out of vogue with modern RPGs (thanks, Bethesda) and one that made playing through this aging classic well worth it: Good games can be silly. Good games can be simple. Good games can be fun.\n","date":1655942400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1655942400,"objectID":"c39fefe42160efc6d8cf33aac4699b58","permalink":"https://jdaymude.github.io/review/videogame-fable-anniversary/","publishdate":"2022-06-23T00:00:00Z","relpermalink":"/review/videogame-fable-anniversary/","section":"review","summary":"At the time of this writing, *Fable: Anniversary* is an eight year-old remaster of an eighteen year-old classic, and that's exactly how it plays. While clumsy mechanics and a bland story drag the game below enjoyable levels, its enduring humor and early innovations in player choice continue to shine. **6 / 10**.","tags":["role-playing","action","third-person"],"title":"Fable: Anniversary","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"This will be a short and sweet review for a short and sweet game. Donut County is a delightful and comical must-play in which you control as a hole in the ground that\u0026rsquo;s gobbling everything up. Each hole starts small—fitting only a soda can or a pebble—but grows with each object consumed. Pretty soon you\u0026rsquo;re dropping whole tables, cars, and houses into the abyss. Clear the area of any and all objects, and you win!\n Destroying civilization as a hole in the ground is the most satisfying way of channeling your chaotic evil. (Do you hate traffic jams but stifle your inner road rage? Donut County has a level for you.) By methodically working through a location\u0026rsquo;s objects, smallest to largest, I couldn\u0026rsquo;t help but make happy sighs of relief as all the junk slowly disappeared. The hole does not discriminate among its targets, though; an upstanding farm in the countryside is just as fair game as a roach-infested greasy spoon. Our consciences get to take a back seat to hilarity on this colorful and minimalist polygon art ride.\n From the surprising physics of retrofitting the hole as a projectile gun to the descriptions of mundane objects—a dog dish is described as \u0026ldquo;drinking from this is like kissing a dog, but not as fun\u0026rdquo;—Donut County kept me laughing throughout its few-hour playtime. If you need an afternoon pick-me-up or a palette cleanser between longer games, Donut County won\u0026rsquo;t fail to delight.\n","date":1653332400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1653332400,"objectID":"b72de7528be6c715ec7f2959768cf350","permalink":"https://jdaymude.github.io/review/videogame-donut-county/","publishdate":"2022-05-23T12:00:00-07:00","relpermalink":"/review/videogame-donut-county/","section":"review","summary":"*Donut County* taught me that destroying civilization as a hole in the ground is the most satisfying way of channeling your chaotic evil. This short, colorful, and hilarious game is a must-play, especially if you're looking for an afternoon pick-me-up or a palette cleanser between longer games. **8 / 10**.","tags":["puzzle","physics-based","comedy","isometric"],"title":"Donut County","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Bugsnax tells the story of a ragtag band of grumpuses who followed the charismatic Aussie-explorer Elizabert Megafig to Snaktooth Island. On arrival, they discover bugsnax—part bug, part snack!—which quickly become their primary source of food and mystery. Only three things are certain: bugsnax are delicious, eating them changes body parts into the \u0026ldquo;-snax\u0026rdquo; part of bugsnax, and grumpuses are bizarrely okay with having curly fries for biceps and honeycombs for hands. But just as eating too many bugsnax morphs grumpuses into foodie-Frankensteins, so too does stitching together a glut of individually tasty gaming morsels render Bugsnax more off-putting than enjoyable.\n Young Horses, perhaps better known for their indie hit Octodad: Dadliest Catch, write on their website that they\u0026rsquo;re \u0026ldquo;pushing the boundaries of game design in order to create experiences that players have not had before.\u0026rdquo; I\u0026rsquo;ll give them this much: it\u0026rsquo;s true that I\u0026rsquo;ve never covered a hamster ball in cheese to lure a sentient nacho mantis into fighting a loaded baked potato crab before. So, novel? Yes. Fun? \u0026hellip;sometimes? \u0026ldquo;Pushing the boundaries of game design\u0026rdquo;? Well\u0026hellip; If Inspector Gadget meets Pokémon meets Slime Rancher meets Sesame Street meets The Sims sounds like your preferred way of pushing boundaries, then by all means Bugsnax is probably a delightful way for you to spend 10–15 hours. For me, it didn\u0026rsquo;t quite hit the spot.\nGameplay is focused on entering a new area, finding its associated grumpuses who retreated there from the central town, convincing them to return to town via bugsnak-based fetch quests, and then coming back later to catch all the bugsnax you missed the first time. Hunting bugsnax involves a light amount of physics- and tool-based puzzle solving. Some need to be melted by tricking them to walk into a hot spring. Others need to be chased out of their holes using your snak-in-a-hamster-ball. Perhaps the most overpowered technique in the game is a carefully laid trip wire, ready to stun just about anything it touches. Figuring out these idiosyncrasies for the first time is good fun— repeating them for another ten hours to catch \u0026lsquo;em all is less rewarding.\n You\u0026rsquo;d hope, then, that the grumpuses and their \u0026ldquo;charming\u0026rdquo; personality stereotypes would be the missing ingredients in this mediocre stew. Instead, they\u0026rsquo;re extra helpings of distraction with a dash of relational weight. Which is the main course: Chandlo and Snorpy\u0026rsquo;s romantic tension, their outlandish obsessions with fitness and conspiracy theories, or their untreated anxiety? Do we focus on Wambus and Triffy\u0026rsquo;s pursuits of career or their seemingly untrusting but fine marriage? Is Beffica a real grumpus worthy of care and concern, or a plot device via which we learn about everyone else? Without spoilers, the narrative wages a similarly bizarre subterfuge against its most important relationship between Eggabell and Lizbert; I couldn\u0026rsquo;t settle whether I was in their corner or wanted Eggabell to run for the hills. And don\u0026rsquo;t even get me started on Wiggle.\n We probably do need more games like Bugsnax made with a huge amount of heart and goodwill. A basic sense of goodness and grumpus-kindness runs through it all, from the bright and colorful characters to the whimsy and silliness of snak-hunting. It may not have been the finest of dining, but would it satisfy at a family dinner? Hopefully so.\n","date":1653242400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1653242400,"objectID":"b59ef75383bb9ff4e70560a89ab56d0a","permalink":"https://jdaymude.github.io/review/videogame-bugsnax/","publishdate":"2022-05-22T11:00:00-07:00","relpermalink":"/review/videogame-bugsnax/","section":"review","summary":"This whimsical but bland adventure sets you, a struggling journalist, on the path of legendary explorer Elizabert Megafig and her search for bugsnax\u0026mdash;part bug, part snack! Unfortunately, the hit-or-miss fun of snak-hunting, the bizarre narrative, and characters' over-the-top personalities never gel to make a cohesive whole. **6 / 10**.","tags":["creature-collector","action-adventure","first-person"],"title":"Bugsnax","type":"review"},{"authors":["Kirtus G. Leyba","Joshua J. Daymude","Jean-Gabriel Young","M. E. J. Newman","Jennifer Rexford","Stephanie Forrest"],"categories":["research"],"content":"","date":1651449600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1651449600,"objectID":"9709a6f1f1cfa3933c66565f7fe33840","permalink":"https://jdaymude.github.io/publication/leyba2022-cuttingthrough/","publishdate":"2022-05-02T00:00:00Z","relpermalink":"/publication/leyba2022-cuttingthrough/","section":"publication","summary":"Public data on the topology of autonomous systems (ASes) participating in the Border Gateway Protocol (BGP) are notoriously incomplete and subject to error. This paper describes a method for reliably inferring AS-level connectivity using Bayesian statistical inference acting on BGP routing tables from multiple vantage points. We use the method to evaluate existing reconstructions and identify locations for new route collectors.","tags":["bayesian-inference","network-inference","border-gateway-protocol"],"title":"Cutting Through the Noise to Infer Autonomous System Topology","type":"publication"},{"authors":["Joshua J. Daymude","Andréa W. Richa","Christian Scheideler"],"categories":["research"],"content":"Distributed computing theory has matured well beyond its original inspiration of dedicated computers linked together in static networks for message passing and file sharing. A key theme across modern applications of distributed computing is the impact of dynamics, or frequent changes in the system\u0026rsquo;s members or the connections among them. This paradigm shift has enabled distributed computing to innovate both within computer science—e.g., in the construction of self-stabilizing overlay networks—and beyond the realm of engineering in, e.g., economics, biology, neurology, and active matter physics. Motivated by these domains where individuals often have limited to no explicit computational power, we study the algorithmic theory of dynamic networks where nodes are anonymous (lacking unique identifiers), have sublogarithmic memory (insufficient for computing identifiers), and communicate via message passing.\nWe are specifically interested in asynchronous concurrency and adaptive self-organization. In studying asynchronous concurrency, we challenge the literature\u0026rsquo;s ubiquitous simplifying assumption that computation and network dynamics remain separated in time, instead designing algorithms that achieve their desired goals in spite of concurrent topological changes. With adaptive self-organization, we initiate the study of an orthogonal type of dynamics, time-varying system tasks, which require algorithms to simultaneously adapt to the environment and achieve self-stabilization.\n","date":1651190400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1651190400,"objectID":"663a79a7b256fbabd9dbb07ad243aa0f","permalink":"https://jdaymude.github.io/project/dynamic-networks/","publishdate":"2022-04-29T00:00:00Z","relpermalink":"/project/dynamic-networks/","section":"project","summary":"Reimagining graph-based models for moving and interacting entities. Designing concurrent and distributed algorithms that are robust to highly dynamic environments. Coordinating anonymous entities across time-varying tasks.","tags":["dynamic-networks","distributed-algorithms"],"title":"Adaptive Self-Organization in Anonymous Dynamic Networks","type":"project"},{"authors":["Joshua J. Daymude","Andréa W. Richa","Christian Scheideler"],"categories":["research"],"content":"","date":1651190400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1651190400,"objectID":"d1465ca43d72b69e66f900caa9c8c341","permalink":"https://jdaymude.github.io/publication/daymude2022-localmutual/","publishdate":"2022-04-29T00:00:00Z","relpermalink":"/publication/daymude2022-localmutual/","section":"publication","summary":"We study the local mutual exclusion problem for weakly capable nodes whose connections change over time. This problem tasks each node with acquiring locks for itself and its \"persistent neighbors\" that remain connected to it during the lock request. Our algorithm solves this problem using only bounded memory and messages and can be applied to population protocols and the canonical amoebot model.","tags":["mutual-exclusion","dynamic-networks","concurrency","distributed-algorithms","population-protocols","amoebot-model"],"title":"Local Mutual Exclusion for Dynamic, Anonymous, Bounded Memory Message Passing Systems","type":"publication"},{"authors":["Robert Axelrod","Stephanie Forrest","Joshua J. Daymude"],"categories":["research"],"content":"","date":1650499200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1650499200,"objectID":"4ac5210e722327b5409aa8793187202b","permalink":"https://jdaymude.github.io/publication/axelrod2022-polarizationreply/","publishdate":"2022-04-21T00:00:00Z","relpermalink":"/publication/axelrod2022-polarizationreply/","section":"publication","summary":"In [\"The complexity of polarization\"](https://www.pnas.org/doi/full/10.1073/pnas.2115019119) (PNAS 2022), de Marchi offers several critiques of our [Attraction-Repulsion Model](/publication/axelrod2021-preventingpolarization) of political polariztation: the results repeat conventional wisdom, are difficult to reconcile with the current US political climate, focus on ideological instead of affective polarization, and are difficult to falsify. This response addresses these four criticisms and reemphasizes several surprising results.","tags":["polarization","agent-based-model","opinion-dynamics","reply"],"title":"Reply to de Marchi: Modeling Polarization of Political Attitudes","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1648574400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1648574400,"objectID":"e4815279a8a4e57281b0b1084d24aa1f","permalink":"https://jdaymude.github.io/event/2022sand-localmutual/","publishdate":"2022-03-29T17:20:00Z","relpermalink":"/event/2022sand-localmutual/","section":"event","summary":"This talk presents a randomized distributed algorithm for *local mutual exclusion*, a new variant of mutual exclusion tasking nodes to acquire locks over themselves and their \"persistent neighbors\" even as their connections change over time. I then discuss its applications to populations protocols and the canonical amoebot model.","tags":["mutual-exclusion","dynamic-networks","concurrency","distributed-algorithms","population-protocols","amoebot-model"],"title":"Local Mutual Exclusion for Dynamic, Anonymous, Bounded Memory Message Passing Systems","type":"event"},{"authors":["Anna E. Carson Daymude","Joshua J. Daymude","Roger Rochat"],"categories":["research"],"content":"Abstract Background. Obstetric provider coverage in rural Georgia has worsened, with nine rural labor and delivery units (LDUs) closing outside the Atlanta Metropolitan Statistical Area from 2012 to 2016. Georgia consistently has one of the highest maternal mortality rates in the nation and faces increased adverse health consequences from this decline in obstetric care.\nObjective. This study explores what factors may be associated with rural hospital LDU closures in Georgia from 2012 to 2016.\nMethods. This study describes differences between rural Georgia hospitals based on LDU closure status through a quantitative analysis of 2011 baseline regional, hospital, and patient data, and a qualitative analysis of newspaper articles addressing the closures.\nResults. LDUs that closed had higher proportions of Black female residents in their Primary Care Service Areas (PCSAs), of Black birthing patients, and of patients with Medicaid, self-pay or other government insurance; lower LDU birth volume; more women giving birth within their PCSA of residence; fewer obstetricians and obstetric provider equivalents per LDU; and fewer average annual births per obstetric provider. Qualitative results indicate financial distress primarily contributed to closures, but also suggest that low birth volume and obstetric provider shortage impacted closures.\nConclusions for Practice. Rural LDU closure in Georgia has a disproportionate impact on Black and low-income women and may be prevented through funding maternity healthcare and addressing provider shortages.\n","date":1645142400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1645142400,"objectID":"623b95429f93b21d26858432026d60bc","permalink":"https://jdaymude.github.io/publication/daymude2022-labordelivery/","publishdate":"2022-02-18T00:00:00Z","relpermalink":"/publication/daymude2022-labordelivery/","section":"publication","summary":"Georgia consistently has one of the highest maternal mortality rates in the nation. We investigate what factors may be associated with the closure of nine labor and delivery units (LDUs) in rural Georgia from 2012 to 2016, leveraging both statistical and qualitative analysis. We find that rural LDU closures are associated with higher proportions of Black and low-income patients, among other factors.","tags":["public-health","maternal-child-health","statistical-analysis"],"title":"Labor and Delivery Unit Closures in Rural Georgia from 2012 to 2016 and the Impact on Black Women: A Mixed-Methods Investigation","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"I so badly wanted to love Moonglow Bay from the moment I saw its trailer at Wholesome Direct 2021. Your late spouse loved the titular Canadian small town until the day they disappeared in its ocean. Years later, it stands on the brink of economic collapse and it\u0026rsquo;s up to you to combine their passion for fishing with your love of cooking to save it. Teaming up with your daughter, River, who drags you out of widowed depression, you sail the voxel-art seas in search of fish both familiar and fantastical—and then chop them up into meals for the townspeople. Reinvesting their lunch money into town renovations slowly transforms a languishing municipality into a booming tourist location, and people love you for it.\n When so many problems in the real world feel insurmountably big, saving a small town by putting homemade fishcakes in a vending machine is exactly the kind of videogame magical escapism I\u0026rsquo;m here for. Unfortunately, Moonglow Bay plays like my persuasive speech in seventh grade English class: solid for about thirty seconds, and then painfully bad for its long remainder. By over-emphasizing its most tedious gameplay elements, failing to achieve cohesive design, and retaining a shockingly large number of near-game-breaking bugs months after release, this game scores lower than most I\u0026rsquo;ve reviewed.\n Let\u0026rsquo;s dive right into this (fish) roast. After a brief tutorial, you\u0026rsquo;re told to get out there and talk to people; make friends! I chatted up the twenty-something techy, Haru. He immediately told me he hoped \u0026ldquo;that vending machine\u0026rdquo; was working out. What vending machine? Oh, the one that I won\u0026rsquo;t actually get for another three hours of gameplay. Cool, cool. I later buy said vending machine, but the game doesn\u0026rsquo;t register that this happened. I remain stuck on this quest until I later buy another completely unrelated item from Haru.\nAn identity crisis starts to emerge when my largely nautical experience is disrupted by the ability to disembark and do some light walking exploration. In town, this is painful, as any elevation change results in weird voxel-clipping that makes it entirely unclear when I can safely go up or down steps. Out on the sea, I walk for fifteen minutes along a gigantic ice bluff that\u0026rsquo;s so tall (and evidently not designed to walk on) that it clips out of the camera\u0026rsquo;s range. Turns out there\u0026rsquo;s nothing to find—not even a cool view—and there was no reason for the game to let me come here.\n On my way back, I find a research outpost and a cave with a lever mechanism. I try interacting with it, only to be scolded by River saying that I obviously don\u0026rsquo;t know what I\u0026rsquo;m doing. She\u0026rsquo;s never actually animated in the world, but still randomly shows up to yell at me or inch the plot along. As it happens, her scolding is a useful hint for a late-game quest if you\u0026rsquo;re stuck in the cave at that point, but means nothing for the first 70% of the game where for whatever reason it still triggers. At this point, my feelings as a player are like:\n Narrative discontinuity and quest progression issues aside, you\u0026rsquo;d think that Moonglow Bay could at least nail its core fishing mechanic. Taken in isolation, catching a big one is, in fact, satisfying. There\u0026rsquo;s a nice balance of reeling in the right direction with timing of strong pulls that makes the minigame feel more like a cartoon simplification of fishing in Red Dead Redemption 2 than a beefed up version of Animal Crossing or Stardew Valley.\nBut so much of this game is catching specific fish—you need at least 90 species to complete the story and a good variety to cook the more advanced meals—and Moonglow Bay chooses to make that experience deeply frustrating. Listening to townspeople\u0026rsquo;s tall tales gives hints about possible species locations, but fails to narrow down the numerous combinations of rod type, lure type, bait type, specific fishing hole, and time of day at which to catch said fish at said location (there can easily be over 50 unique combinations of the above factors—per fish!). Some locations aren\u0026rsquo;t locations at all, but rather regions that take up an entire quarter of the map. Other information is only accessible after bonding with certain friends (fair enough), but come in the form of one-time hints that aren\u0026rsquo;t recorded in your fishing journal. Either you realize you need to take notes yourself, or you\u0026rsquo;re resorting to Google later.\n Cooking is yet another decent idea turned tedious. Each recipe has some fish ingredients to gather and then a series of steps to prepare. Each step (washing, chopping, filleting, frying, boiling, and baking) is a dexterity-based minigame. While your fellow Moonglow residents simply tell you that the more you cook, the more likely you are to be inspired to invent new recipes, the reality is that you need to cook each recipe perfectly (no dexterity mistakes!) up to nine(!) times to unlock yet another repetitive cooking experience composed of the same minigames. There is an option to \u0026ldquo;batch cook\u0026rdquo; multiple meals of the same recipe simultaneously, but wait, those only count as one meal cooked towards the new recipe unlocks. And did I mention there are 60 recipes in the game? You do the math on that time sink.\nThen there\u0026rsquo;s the fact that the boat handles like crap, especially in a certain late-game region, which leads to complete jank like this:\n \rI succeed in suspending my boat in midair, fishing some inanimate objects, and then sending my boat careening off map where a cutscene that I\u0026rsquo;ve already seen replays, this time with River talking to no one.\nMoonglow Bay\u0026rsquo;s bright voxel art, excellent gender representation, and ostensibly chill vibes should have made it an easy win in my book. Too bad it seized every opportunity to take that vision down with the ship.\n","date":1644789600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1644789600,"objectID":"2586467a06e5e27bd1da4ba48a056459","permalink":"https://jdaymude.github.io/review/videogame-moonglow-bay/","publishdate":"2022-02-13T15:00:00-07:00","relpermalink":"/review/videogame-moonglow-bay/","section":"review","summary":"Saving a small town from economic collapse by putting homemade fishcakes in a vending machine is exactly the kind of videogame escapism I'm here for. Unfortunately, with design that focuses on all the wrong things and many near-game-breaking bugs plaguing the experience, it's difficult to recommend what should have been a great game. **4 / 10**.","tags":["fishing","cooking","adventure"],"title":"Moonglow Bay","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"I came to Crying in H Mart with questions I\u0026rsquo;ve been asking my entire race- and ethnicity-conscious life. Questions of place and perception, where I fit and how others see me. Questions of whether people like me, my siblings, and Michelle Zauner will ever find ourselves in a world where we don\u0026rsquo;t have to explain ourselves as 한국사람 하고 미국사람, a biracial Korean and white person. Or, more to the point:\n우리 엄마 한국사람, 아빠 미국사람.\nMy mom is Korean and my dad is white.\nZauner processes these same questions during a span of years where her 할머니 (grandmother), 이모 (aunt), and finally her 어머니 (mother) all die of cancer, leaving her to ask what it means to be Korean when her blood ties have all passed on.\n Within five years, I lost both my aunt and my mother to cancer. So, when I go to H Mart, I\u0026rsquo;m not just on the hunt for cuttlefish and three bunches of scallions for a buck; I\u0026rsquo;m searching for memories. I\u0026rsquo;m collecting the evidence that the Korean half of my identify didn\u0026rsquo;t die when they did. H Mart is the bridge that guides me away from the memories that haunt me, of chemo head and skeletal bodies and logging milligrams of hydrocodone. It reminds me of who they were before, beautiful and full of life, wiggling Chang Gu honey-cracker rings on all ten of their fingers, showing me how to suck a Korean grape from its skin and spit out the seeds.\n— Crying in H Mart, pages 10–11\n This is also—as the title suggests—a book about food, for food is the universal and accessible medium of cultural understanding. Unlike the unique challenge of learning new languages, food graciously grants fluency in exchange for an adventurous will to try. For a foreigner to communicate wonder with their eyes wide open as their mouth busily works to understand what they\u0026rsquo;ve just bitten into instantly makes them one with the table and those around it, even if just for a moment. Zauner discovered this powerful language of love to be a bridge between herself and her mother, one that could transcend cultural divide and the many ways Zauner\u0026rsquo;s mother showed love in seemingly less than loving ways.\nIt would be easy for an outsider to dismiss this disconnect between what a parent gives and what their child receives as typical familial misunderstanding. Perhaps those with some sensitivity might also perceive the complexities of immigrant parents relating to their children raised in the United States. But the tension of biraciality is finding identity not only in the collision of two historically separate worlds but also in the new, rare thing that is distinct from and more than the sum of its parts. Being biracial is as much a both-and of the parent cultures as it is neither-nor, marked by a struggle to navigate two worlds that are our inheritance but have no box to put us in.\n I had spent my adolescense trying to blend in with my peers in suburban America, and had come of age feeling like my belonging was something to prove. Something that was always in the hands of other people to be given and never my own to take, to decide which side I was on, whom I was allowed to align with. I could never be of both worlds, only half in and half out, waiting to be ejected at will by someone with greater claim than me. Someone full. Someone whole.\n— Crying in H Mart, page 107\n With age comes wisdom and suffering. I don\u0026rsquo;t know which of the two proceeds from the other, or if together they form an ouroboros, locked in a never-ending cycle. Zauner experiences a great deal of both in the painful decline and death of her mother, a loss that took away more than just the love and stability of a parent. Earlier in the memoir, Zauner describes visiting a Korean bathhouse with her mother, father, and boyfriend. The spectacle in this scene are her white father and boyfriend stripping nude in the men\u0026rsquo;s partition—not Zauner\u0026rsquo;s identity. Next to her mother, Zauner makes sense. No one looks at her twice or asks her if she\u0026rsquo;s lost. But years later, without her mother to implicitly justify her, Zauner is forced to explain herself in that familiar and humiliating admittance of other-ness.\n [An ajumma] looked into my face as if searching for something. I knew what she was looking for. It was the same way the kids at school would look at me before they asked me what I was, but from the opposite angle. She was looking for the hint of Koreanness in my face that she couldn\u0026rsquo;t quite put a finger on. Something that resembled her own.\n\u0026hellip;It was ironic that I, who once longed to resemble my white peers and desperately hoped my Koreanness would go unnoticed, was now absolutely terrified that this stranger in the bathhouse could not see it.\n— Crying in H Mart, pages 225–226\n Like Zauner, I have a Korean mother and a white father. She and I both excitedly rushed off to examine our eyes in the mirror after our mothers taught us about the double eyelid envied by Koreans. We\u0026rsquo;ve found some shred of Korean belonging in knowledge of its cuisine, perhaps especially when we share it with our white spouses. We\u0026rsquo;ve lost our elders to time and asked ourselves what hope for belonging we lost with them, even if we carry them with us in our middle names. We\u0026rsquo;ve tried to explain what being half-Korean feels like to our loving full-Korean mothers, only for them to tell us in a moment of blindsiding misunderstanding that we\u0026rsquo;re American, not Korean. And in all this, we\u0026rsquo;ve come to learn that there are no clean answers to questions of half-white biraciality in a nation that has barely even begun its reckoning with its oppression of single-race minorities.\nEven still, it\u0026rsquo;s nice to not be alone.\n","date":1641416400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1641416400,"objectID":"139b0cca0ef6474a0a9278483a09fac0","permalink":"https://jdaymude.github.io/review/book-crying-in-h-mart/","publishdate":"2022-01-05T13:00:00-08:00","relpermalink":"/review/book-crying-in-h-mart/","section":"review","summary":"Michelle Zauner's memoir of her mother expertly navigates themes of biracial identity, Korean food, and human suffering. Owing to the many life experiences Zauner and I share as half-Korean, half-white people, she speaks to realities that have always eluded my own expression. For that\u0026mdash;and for her beautiful, spiritual descriptions of Korean food\u0026mdash;I am deeply grateful. **8 / 10**.","tags":["memoir","family","food","music","korea"],"title":"Crying in H Mart","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"It\u0026rsquo;s very difficult at this point to say anything about Hades that hasn\u0026rsquo;t already been said, not because of any lack on the part of this Underworld roguelite, but because so many others before me have loved and effusively written about this game. A week after its early access release in September 2020, it had already sold 1,000,000 copies. It was listed as just about everyone\u0026rsquo;s 2020 game of the year and even won the first ever Hugo award given to a videogame (for the unfamiliar, those are literary awards for sci-fi and fantasy). Suffice it to say, Hades is critically and personally well-loved.\n\u0026ldquo;But wait!\u0026rdquo; you say, \u0026ldquo;I\u0026rsquo;m no lemming. What is Hades, really? And is it\u0026hellip; actually good?\u0026rdquo; Fair enough.\n Hades is a narrative-driven roguelite set in Greek mythology that tells the story of Zagreus, son of Hades, shortly after he discovers a surprising truth about his parentage. Determined to put his anger about being lied to and his frustration with his stern, cold, and impatient father to better use, he attempts to escape from the House of Hades and his Underworld home, aided by his godly relatives on Olympus. Standing between Zagreus and the surface are the many monsters and hazards that Hades put in place to keep the dead from escaping, often resulting in Zagreus\u0026rsquo;s death and return to the House via the river Styx. Therein lies the game\u0026rsquo;s core mechanic of repeated and semi-randomized runs, each an opportunity for Zagreus to claw ever closer to the surface and the answers to his many questions.\n Along the way, Zagreus forms relationships with his Chthonic relatives and friends in the House of Hades and with the gods of Olympus as they aid him in his escape. In true Supergiant Games style, these characters are each distinct personalities unto themselves with beautifully rendered portraits and top-notch voice acting. Largely thanks to the game\u0026rsquo;s writing and length, relationships grow and change in believable ways, taking the player on an emotional journey that mirrors Zagreus\u0026rsquo;s own.\n The long character arcs are supported by fast combat and seamlessly integrating progression systems that create the \u0026ldquo;just one more run\u0026rdquo; hook. Resources gathered in a run can be used to make Zagreus permanently stronger, spent on decorations and new features for the House, or given as gifts to improve relationships (represented as heart meters a la Stardew Valley). Rare goods earned from defeating bosses can unlock new \u0026ldquo;aspects\u0026rdquo; of various weapons, changing their play style or fusing with other mechanics in Zagreus\u0026rsquo;s repertoire. Keepsakes given to Zagreus by his friends can make the difference between living and dying, and like the relationships they represent, they grow stronger as Zagreus spends more time with them.\n As rewarding as it is to deepen relationships and have initially punishing runs become second nature over the course of repetition, Hades is a touch too long for its own good. For the 40 hours it took to me to reach the main ending—triggered by escaping to the surface 10 times—I was dazzled by the interlocking progression systems, character development, and random surprises and quirks (like stealing from Charon). The 25-hour-long road through the epilogue to the full narrative conclusion, however, seemed to stretch out even longer than the first. I completed runs on autopilot, sped along by the Pact of Punishment\u0026rsquo;s time limits for easy heat, no longer surprised at the ease with which I navigated my way through hell.\nPerhaps this is the nature of finding one\u0026rsquo;s self and place: we trade the head-spinning thrill and crises of the search for the safety and security of knowing, and from the space of knowing we choose our ventures selectively. The epilogue shows us how Zagreus\u0026rsquo;s potential for redemptive, generous, and loving acts are discovered only after finding his place within community.\n","date":1641330000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1641330000,"objectID":"83e463198140ad9c4e056bccc116b2c0","permalink":"https://jdaymude.github.io/review/videogame-hades/","publishdate":"2022-01-04T13:00:00-08:00","relpermalink":"/review/videogame-hades/","section":"review","summary":"This wildly popular and critically acclaimed roguelite tells the story of Zagreus, son of Hades, after he learns a surprising truth about his parentage. Through repeated attempts to escape from his Underworld home, Zagreus finds peace with himself and his community. With *Hades*, Supergiant Games finds resounding success in blending slick action combat with the themes of redemption, generosity, and love. **9 / 10**.","tags":["roguelite","mythology","isometric"],"title":"Hades","type":"review"},{"authors":["Robert Axelrod","Joshua J. Daymude","Stephanie Forrest"],"categories":["research"],"content":" Science-Practice Blog: How might individual interactions lead to polarization in a society? Nancy Lewis. The Morton Deutsch International Center for Cooperation and Conflict Resolution, June 2022. Like a natural system, democracy faces collapse as polarization leads to loss of diversity. Princeton University. EurekaAlert!, December 2021. Preventing extreme polarization of political attitudes. Santa Fe Institute, December 2021. (Also featured in EurekaAlert!). Computing scenarios for defusing polarizing politics. Joe Kullman. ASU FullCircle, December 2021. (Also featured in ASU News). Reducing extreme polarization is key to stabilizing democracy. Stephanie Forrest and Joshua Daymude. Brookings TechTank, January 2022. (Reposted by Bishop Jennifer Reddall). Researchers look to technology to find out what’s increasing the country’s social and political divide. Arizona Horizon, January 2022. ","date":1639440000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1639440000,"objectID":"041c6a5d19c3dc3fb20dc395dd6de05a","permalink":"https://jdaymude.github.io/publication/axelrod2021-preventingpolarization/","publishdate":"2021-12-14T00:00:00Z","relpermalink":"/publication/axelrod2021-preventingpolarization/","section":"publication","summary":"To better understand how polarization can be prevented, we developed a simple agent-based model in which people tend to be exposed to and attracted by views similar to their own, but are repulsed by views that are too dissimilar. The policy implications are described in terms of tolerance, responsiveness, exposure to dissimilar views, multiple ideological dimensions, economic self-interest, and external shocks.","tags":["polarization","agent-based-model","opinion-dynamics"],"title":"Preventing Extreme Polarization of Political Attitudes","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["teaching"],"content":"An ongoing research project on modeling computer security has thrown me back into calculus for the first time since my undergraduate differential equations course in 2014, which as an aside was the only college course that forced me to buy the professor\u0026rsquo;s custom textbook just to get access to homework problems. (I\u0026rsquo;m still mad about that.) Anyway, my research led me to take the derivative of an expression of the form:\n$$\\prod_{i=1}^n f_i(x)$$\nFor the uninitiated, $\\prod$ is a mathematical symbol meaning \u0026ldquo;product\u0026rdquo; (and is analogous to the $\\sum$ symbol meaning \u0026ldquo;sum\u0026rdquo;). It says to look at each $f_i$ term as $i$ goes from $1, 2, \\ldots, n$ and multiply them all together:\n$$\\prod_{i=1}^n f_i(x) = f_1(x) \\times f_2(x) \\times \\cdots \\times f_n(x)$$\nTaking this derivative is something high-school me was much better prepared for than current postdoc me, but after some head scratching I found the elegant solution:\n$$\\frac{d}{dx} \\prod_{i=1}^n f_i(x) = \\prod_{i=1}^n f_i(x) \\cdot \\sum_{i=1}^n \\frac{f_i'(x)}{f_i(x)}$$\nAs is common in mathematics, there\u0026rsquo;s a direct but tedious way to get this answer and another more elegant way to get the same thing. I\u0026rsquo;m not the first to derive this solution, but I\u0026rsquo;m writing it up for posterity because I will inevitably forget this trick in a few days. A PDF of the two derivations without all the handholding I\u0026rsquo;m about to do is available here.\nMethod 1: Product Rule I had to sweep away years of mental cobwebs to remember the product rule for derivatives. My expression is a product, after all, so why not start there? The product rule states:\n$$\\frac{d}{dx}(u \\cdot v) = u' \\cdot v + u \\cdot v'$$\nThis works for the product of two terms, but $\\prod_{i=1}^n f_i(x)$ has $n$ terms. Let\u0026rsquo;s try peeling off terms one-by-one, starting with $f_1(x)$, and then applying the product rule.\n$$\\begin{align*} \\frac{d}{dx} \\prod_{i=1}^n f_i(x) \u0026amp;= \\frac{d}{dx} \\left(f_1(x) \\cdot \\prod_{i=2}^n f_i(x)\\right) \\\\ \u0026amp;= f_1'(x) \\cdot \\prod_{i=2}^n f_i(x) + f_1(x) \\cdot \\frac{d}{dx} \\left(\\prod_{i=2}^n f_i(x)\\right) \\end{align*}$$\nThat\u0026rsquo;s progress, but now we have to repeat the process to deal with the $\\frac{d}{dx} \\left(\\prod_{i=2}^n f_i(x)\\right)$ term, peeling off $f_2(x)$ and applying the product rule again:\n$$\\begin{align*} \\frac{d}{dx} \\prod_{i=1}^n f_i(x) \u0026amp;= f_1'(x) \\cdot \\prod_{i=2}^n f_i(x) + f_1(x) \\cdot \\frac{d}{dx} \\left(\\prod_{i=2}^n f_i(x)\\right) \\\\ \u0026amp;= f_1'(x) \\cdot \\prod_{i=2}^n f_i(x) + f_1(x) \\\\ \u0026amp;\\quad \\cdot \\left(f_2'(x) \\cdot \\prod_{i=3}^n f_i(x) + f_2(x) \\cdot \\frac{d}{dx} \\left(\\prod_{i=3}^n f_i(x)\\right)\\right) \\end{align*}$$\nThis expression\u0026rsquo;s going to have more layers than an ogre! If we were to do the peel-and-product rule strategy $n-1$ times, we would arrive at:\n$$\\begin{align*} \\frac{d}{dx} \\prod_{i=1}^n f_i(x) \u0026amp;= f_1'(x) \\cdot \\prod_{i=2}^n f_i(x) + f_1(x) \\\\ \u0026amp;\\quad \\cdot \\left(f_2'(x) \\cdot \\prod_{i=3}^n f_i(x) + f_2(x) \\right. \\\\ \u0026amp;\\quad \\cdot \\left(f_3'(x) \\cdot \\prod_{i=4}^n f_i(x) + f_3(x) \\cdots + f_{n-2}(x) \\right. \\\\ \u0026amp;\\quad \\left. \\left. \\cdot \\left(f_{n-1}'(x) \\cdot f_n(x) + f_n'(x) \\cdot f_{n-1}(x)\\right) \\cdots \\right) \\right) \\end{align*}$$\nDo you see the pattern? If we distribute the $f_i(x)$ terms at the end of each of the lines above into the parentheses that immediately follow,\n$$\\begin{align*} \\frac{d}{dx} \\prod_{i=1}^n f_i(x) \u0026amp;= f_1'(x) \\cdot \\prod_{i=2}^n f_i(x) + f_2'(x) \\cdot f_1(x) \\cdot \\prod_{i=3}^n f_i(x) \\\\ \u0026amp;\\quad + f_3'(x) \\cdot f_1(x) \\cdot f_2(x) \\cdot \\prod_{i=4}^n f_i(x) \\\\ \u0026amp;\\quad + f_{n-1}'(x) \\cdot f_1(x) \\cdots f_{n-2}(x) \\cdot f_n(x) \\\\ \u0026amp;\\quad + f_n'(x) \\cdot f_1(x) \\cdots f_{n-1}(x) \\end{align*}$$\nWe\u0026rsquo;re adding up a bunch of terms, each of which is a derivative $f_i'(x)$ multiplied by all the other $f_j(x)$\u0026rsquo;s, where $j \\neq i$. Landing this messy, notation-heavy plane, we can rewrite this long sum as\n$$\\frac{d}{dx} \\prod_{i=1}^n f_i(x) = \\sum_{i=1}^n f_i'(x) \\cdot \\frac{\\prod_{j=1}^n f_j(x)}{f_i(x)} = \\prod_{i=1}^n f_i(x) \\cdot \\sum_{i=1}^n \\frac{f_i'(x)}{f_i(x)},$$\nwhich is the solution we came for.\nMethod 2: Leveraging Logarithms Mathematicians crave elegance, and Method 1 wasn\u0026rsquo;t that. We had to keep keen eyes out for patterns as they emerged and carefully distribute/rearrange many terms to get the solution. This second method will be much cleaner, but as many clever methods do, it begins with an unintuitive step.\nLet $F(x) = \\prod_{i=1}^n f_i(x)$. Taking the natural logarithm of both sides,\n$$\\ln(F(x)) = \\ln\\left(\\prod_{i=1}^n f_i(x)\\right) = \\sum_{i=1}^n \\ln(f_i(x)),$$\nwhere the last equality follows from the fact that the logarithm of a product is equal to the sum of logarithms. The derivative of the natural logarithm is:\n$$\\frac{d}{dx}\\ln(x) = \\frac{1}{x}$$\nUsing chain rule to take the derivative of both sides of the above equality,\n$$\\begin{align*} \\frac{d}{dx}\\ln(F(x)) \u0026amp;= \\frac{d}{dx}\\sum_{i=1}^n \\ln(f_i(x)) \\\\ \\frac{1}{F(x)} \\cdot \\frac{dF}{dx} \u0026amp;= \\sum_{i=1}^n \\frac{1}{f_i(x)} \\cdot f_i'(x) \\\\ \\frac{dF}{dx} \u0026amp;= F(x) \\cdot \\sum_{i=1}^n \\frac{f_i'(x)}{f_i(x)} \\end{align*}$$\nIf we plug $F(x) = \\prod_{i=1}^n f_i(x)$ back in, out pops the solution:\n$$\\frac{d}{dx} \\prod_{i=1}^n f_i(x) = \\prod_{i=1}^n f_i(x) \\cdot \\sum_{i=1}^n \\frac{f_i'(x)}{f_i(x)}$$\nConcluding Thoughts Having initially stumbled upon Method 1, I was surprised that this derivative came out so beautifully in the end. Credit where it\u0026rsquo;s due: I adapted the elegant Method 2 from this post regarding infinite products. I have some technical notes at the end of the linked PDF about when Method 2 breaks down, though I believe Method 1 does not have any of these problems.\nHopefully this was fun (and if it wasn\u0026rsquo;t, I doubt you read this far 😉). This is one of many examples in mathematics of finding multiple solutions to the same problem and learning something different each time. Next time you emerge victorious from a tedious derivation, see if you can find a clever alternative!\n","date":1638298660,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1638298660,"objectID":"877dfd7bc8ba7e58e252928a69e4bf79","permalink":"https://jdaymude.github.io/post/elegant-derivatives-of-large-products/","publishdate":"2021-11-30T11:57:40-07:00","relpermalink":"/post/elegant-derivatives-of-large-products/","section":"post","summary":"In math, there are often many roads to the same destination, and some roads are much nicer than others. In this post, we find the first derivative of $\\prod\\_{i=1}^n f\\_i(x)$ two different ways: one direct and tedious, the other initially unintuitive but elegant.","tags":["mathematics","calculus","derivatives"],"title":"Elegant Derivatives of Large Products","type":"post"},{"authors":["Joshua J. Daymude","Noble C. Harasha"],"categories":["research"],"content":"","date":1637160000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1637160000,"objectID":"64a7faa284f502216c96fcfc88ad0967","permalink":"https://jdaymude.github.io/event/2021sss-deadlockaggregation/","publishdate":"2021-11-17T09:40:00-05:00","relpermalink":"/event/2021sss-deadlockaggregation/","section":"event","summary":"In this talk, we present new results for the algorithm for swarm aggregation by Gauci et al. (2014). We first identify deadlock configurations for $n 3$ robots that never aggregate. We then show the algorithm's robustness to noise and error. Finally, we demonstrate how generalizing the algorithm with cone-of-sight sensors can improve runtime.","tags":["swarm-robotics","aggregation","self-organization"],"title":"Deadlock and Noise in Self-Organized Aggregation Without Computation","type":"event"},{"authors":["Joshua J. Daymude","Noble C. Harasha","Andréa W. Richa","Ryan Yiu"],"categories":["research"],"content":"","date":1636416000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1636416000,"objectID":"4d698477fbbd20e0367cbcb0c013287f","permalink":"https://jdaymude.github.io/publication/daymude2021-deadlockaggregation/","publishdate":"2021-11-09T00:00:00Z","relpermalink":"/publication/daymude2021-deadlockaggregation/","section":"publication","summary":"We answer negatively the open question of whether the swarm robotics aggregation algorithm by Gauci et al. (2014) will always aggregate systems of $n 2$ robots when the robots' movement is deterministic and uniform. In simulations, we demonstrate that the algorithm is robust to sensor and motion noise. Lastly, we prove that cone-of-sight sensors can provide linear speedup over line-of-sight sensors in the $n = 2$ case.","tags":["swarm-robotics","aggregation","self-organization"],"title":"Deadlock and Noise in Self-Organized Aggregation Without Computation","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1633450800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1633450800,"objectID":"65800c96af64abff8f42c456a82199f4","permalink":"https://jdaymude.github.io/event/2021disc-canonicalamoebot/","publishdate":"2021-10-05T18:20:00+02:00","relpermalink":"/event/2021disc-canonicalamoebot/","section":"event","summary":"This talk introduces the *canonical amoebot model* of programmable matter, a revision of the amoebot model that standardizes a hierarchy of assumption variants and treats all amoebot communication as message passing to facilitate studies of concurrency. I then present two complementary approaches to designing concurrent amoebot algorithms.","tags":["programmable-matter","self-organization","distributed-algorithms","amoebot-model","concurrency","shape-formation"],"title":"The Canonical Amoebot Model: Algorithms and Concurrency Control","type":"event"},{"authors":["Joshua J. Daymude","Andréa W. Richa","Christian Scheideler"],"categories":["research"],"content":"","date":1633305600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1633305600,"objectID":"e53c7173f7085ce52a9607d08764722c","permalink":"https://jdaymude.github.io/publication/daymude2021-canonicalamoebot/","publishdate":"2021-10-04T00:00:00Z","relpermalink":"/publication/daymude2021-canonicalamoebot/","section":"publication","summary":"We present the canonical amoebot model, an updated formalization of the amoebot model of programmable matter that standardizes a hierarchy of assumption variants and addresses concurrency. We then demonstrate two approaches to concurrent algorithm design: embedding concurrency control directly, and leveraging a novel concurrency control framework.","tags":["programmable-matter","self-organization","distributed-algorithms","amoebot-model","concurrency","shape-formation"],"title":"The Canonical Amoebot Model: Algorithms and Concurrency Control","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Control exerts full mastery over videogames as a unique narrative form, blending motion-capture acting performances, live-action filmed skits and monologues, puppet shows, radio programs, rock albums, short stories, technical documentation, a whole slew of homages to other videogame genres, and — of course — shooting weird shit that needs to be shot. While not a must, Control and its Oldest House are best experienced in the progressive revelations and immersive weirdness so carefully crafted by its developers. The remainder of this review may contain atmospheric and thematic spoilers.\n Control should be remembered, if not for any of its other solid qualities, as a milestone in storytelling with the gaming medium. It\u0026rsquo;s one thing to have high quality voice acting and motion capture — especially for facial expressions — so that your game characters can converse more naturally than, say, Siri. It\u0026rsquo;s another thing entirely to film talented actors and put that footage in the game, a technique Remedy continues here from their past work in Quantum Break and, to a lesser extent, Alan Wake and Bright Falls. The narrative tricks needed to pull this off (namely, the Hotline and littering the Oldest House with instructional films and research updates) are clever. Weaving tie-ins between those short films and the mass of mixed-medium work throughout the rest of the game is impressive. But slowly coming to grips with the collective efforts of directors, writers, actors, visual artists, programmers, managers, and the many, many others involved in developing a game of this caliber is staggering. To experience artistry that feels genuinely new is a deep joy.\nJesse Faden (Courtney Hope), our protagonist, is solid ground in the physically and metaphorically shifting strangeness of the Oldest House. We get to watch the depth of her inner worries and assessments balance with her do-what-we-came-to-do attitude to round out a reasonably believable human being. She\u0026rsquo;s relational, witty, and exceptionally brave: unlike me, she does not freak out when ambushed by shrieking resonance zombies. The player may be holding the controller, but this is Jesse\u0026rsquo;s story and she is in control.\n Control, aside from being the literal name of the game, is a central theme under exploration. What does it mean to have control? Who had it before and who has it now? What do you do with control when it\u0026rsquo;s yours?\nPower, the story posits, is not the same as control. Control is more elusive. It requires understanding, trust, and genuine leadership — qualities that Jesse\u0026rsquo;s predecessors Northmoor and Trench traded away in their pursuit of, ironically, control. But instead of probing this theme more deeply (for example, asking whether control itself is just an illusory sense of security), the game\u0026rsquo;s conclusion is satisfied with replacing entrenched, toxic leaders with Jesse and other critically thinking young people and calling it a day. The Foundation and AWE DLCs do a little more work in this direction, but fall short of staking out a thoughtful value claim to complement the robust narrative creativity. I\u0026rsquo;d hoped for more.\n Amidst all this focus on artistry, narrative, and hopes for philosophy, it\u0026rsquo;s still worth mentioning that the gunplay and paranatural combat abilities feel great. Returning to other games after being Jesse Faden is markedly disappointing. Said another way, you know how exhilarating the combat in Control is going to be from the first moment you accidentally bump into a table and the physics engine sends it flying into a wall, papers thrust into the air.\nI\u0026rsquo;m excited to know the talented folks at Remedy are already working on new stories in the Control universe, and for what other developers and artists this quality of videogame storytelling might inspire.\nBugs It\u0026rsquo;s minor, but there was an occasional issue where the floor would just\u0026hellip; disappear. At first I thought this was a thing the Oldest House did; then after an extended period of confusion I realized some textures just weren\u0026rsquo;t loading.\n Also, while not a bug, I\u0026rsquo;m highly skeptical of an office building with lids on their public toilets. Like. Who does this? The Federal Bureau of Control, I guess.\n ","date":1630721312,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1630721312,"objectID":"a5b5ecf594a45746a1193fd6d9e25641","permalink":"https://jdaymude.github.io/review/videogame-control/","publishdate":"2021-09-03T19:08:32-07:00","relpermalink":"/review/videogame-control/","section":"review","summary":"_Control_ is a masterpiece of mixed-medium storytelling, blending everything from live-action monologues to puppet shows to rock albums in one indelible, high-velocity thriller. But more than for the exceeding weirdness of the Oldest House, the high-quality acting performances, or the polished gunplay and paranatural combat, _Control_ should be played for its ambitious artistry and the staggering efforts of its creative team. **9 / 10**.","tags":["action","atmospheric-horror","metroidvania","science","thriller","third-person"],"title":"Control","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Against the backdrop of a diorama solar system in a diorama universe, Outer Wilds plunges forward into an ambitious adventure of wonder and exploration. You play as the sixth member of your species to venture out into space — and the first to do so with a translation device for the language of the Nomai, an ancient species that mysteriously disappeared a long time ago. Remnants of their civilization are scattered all around your solar system, like bread crumbs in a nonlinear trail, inviting you into their mystery. What were the Nomai doing? Where did they go? What\u0026rsquo;s it all for?\n I enthusiastically recommend Outer Wilds to anyone who will listen; it\u0026rsquo;s a resounding 10/10. I love the world and its inhabitants, and their ideals to explore and to understand. The music frequently brings me to a very emotional place (more on that in a moment). But this game\u0026rsquo;s best quality is its unique ability to engage players at the intersection of imagination and discovery: learning new information pushes you to form new questions, which in turn makes you seek new answers, and then the cycle repeats. The nonlinear narrative supports your curiosity in whatever direction you decide to go; there are no artificial checkpoints or cutscenes pushing you towards a specific experience. The way you engage with this world is your own.\nOuter Wilds is surprisingly capable at blending the whimsy and brutality of space exploration. Your spaceship is made of wood, of all things, and yet is often your only life support in the cold void of space. Plummeting into a black hole is surprisingly non-lethal, but what awaits on the other side is nevertheless crushingly isolating. Extremely bizarre things happen on a regular basis — like getting launched from a planet into low orbit only to crash back down — but manage to feel more bemusing than terrifying.\n And the music! Funnily enough, when I fired up Outer Wilds for the first time, I didn\u0026rsquo;t make it past the main menu. I was captivated by the title track. As I watched the little campfire come to life, the theme\u0026rsquo;s dueling banjos sang optimism and hope into the deep black of space. The composer, Andrew Prahlow, layers a bright foreground he recorded just before development wrapped with a background that he\u0026rsquo;d recorded seven years prior — a detail that\u0026rsquo;s both beyond incredible and very difficult to appreciate without having first finished the game. Suffice it to say, this is my favorite game soundtrack, and I\u0026rsquo;ve listened to many.\n Lastly, Outer Wilds achieves a mark of masterclass sci-fi, wrapping the vast happenings of the universe into a story that is deeply personal. It sets us off asking questions about physics and ancient anthropology but, along the way, teaches us to ask questions of ourselves. How could we be more open-handed and filled with wonder, like the Nomai? What do we do with the memories of people and experiences long gone? How can we live bravely in the face of a constantly uncertain future?\n It\u0026rsquo;s tempting to linger in this moment, while every possibility still exists. But unless they are collapsed by an observer, they will never be more than possibilities.\n ","date":1627153200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1627153200,"objectID":"e93498476cbba942182b5e21b82d6454","permalink":"https://jdaymude.github.io/review/videogame-outer-wilds/","publishdate":"2021-07-24T12:00:00-07:00","relpermalink":"/review/videogame-outer-wilds/","section":"review","summary":"*Outer Wilds* is an ambitious adventure of wonder and discovery set in a charming but dangerous diorama solar system. The soundtrack is one of the best I've heard from a videogame. At its core, this must-play game of creativity and heart encourages its players to bravely carry their memories of the past into an uncertain and changing future. **10 / 10**.","tags":["adventure","exploration","space","science","puzzle","first-person"],"title":"Outer Wilds","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1626286500,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1626286500,"objectID":"784c079a001dcd27ec84a3a9e61e01db","permalink":"https://jdaymude.github.io/event/2021sfi-analogcollectives/","publishdate":"2021-07-14T12:15:00-06:00","relpermalink":"/event/2021sfi-analogcollectives/","section":"event","summary":"How can an observed or desired collective behavior be reverse-engineered into local rules that individuals can embody? In this talk, I present a framework for designing stochastic distributed algorithms whose long-run collective behaviors can be formally characterized by phase transitions and can be embodied in analog collectives.","tags":["programmable-matter","swarm-robotics","active-matter","self-organization","distributed-algorithms","markov-chains","amoebot-model","leader-election","coating","convex-hull","compression","bridging","separation","phototaxing","aggregation","dispersion","smarticles","bobbots"],"title":"Algorithmic Foundations of Emergent Behavior in Analog Collectives","type":"event"},{"authors":["Andréa W. Richa","Dana Randall","Daniel I. Goldman","Sarah Cannon","Joshua J. Daymude","Ram Avinery","Enes Aydin","Bahnisikha Dutta","Shengkai Li","William Savoie","Ross Warkentin","Cem Gökmen","Marta Andrés Arroyo"],"categories":["research"],"content":"We develop a theoretical framework for task-oriented active matter that combines distributed computing, stochastic processes, statistical physics, active matter physics, and robophysics. By harnessing phase changes from statistical physics in our formal modeling and algorithm design, we obtain robust and provable self-organizing behaviors. We then incorporate this theory into swarm robotics platforms, establishing tight analogies between (but not necessarily strict implementations of) the algorithms' rules and our robots' designs. This allows us to critically examine our theoretical algorithms' robustness to the errors and uncertainties of physical environments. Further, we can treat robot swarms as macro-scale active matter systems, studying the inter-robot dynamics as an analogy to particle interactions.\n","date":1619136000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1619136000,"objectID":"77844b041c3ad13a6f0fb1bc3798f267","permalink":"https://jdaymude.github.io/project/active-matter/","publishdate":"2021-04-23T00:00:00Z","relpermalink":"/project/active-matter/","section":"project","summary":"Harnessing phase changes from statistical physics in algorithm design. Incorporating algorithmic theory in robot design and manufacturing. Making analogies between macro-scale robot swarm dynamics and the physics of granular active matter systems.","tags":["programmable-matter","swarm-robotics","active-matter","markov-chains","distributed-algorithms"],"title":"A Distributed, Stochastic Framework for Active Matter","type":"project"},{"authors":["Shengkai Li","Bahnisikha Dutta","Sarah Cannon","Joshua J. Daymude","Ram Avinery","Enes Aydin","Andréa W. Richa","Daniel I. Goldman","Dana Randall"],"categories":["research"],"content":"Related Press Simple Robots, Smart Algorithms: Meet the BOBbots. Dana Randall. Georgia Tech News Center, April 2021. (Also featured in EurekaAlert!). Greater Than the Sum of Its Parts. Gary Werner. ASU FullCircle, April 2021. (Also featured in ASU News). ","date":1619136000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1619136000,"objectID":"a8f00d5996a368a07573693fcae035b1","permalink":"https://jdaymude.github.io/publication/li2021-bobbots/","publishdate":"2021-04-23T00:00:00Z","relpermalink":"/publication/li2021-bobbots/","section":"publication","summary":"We study the collective aggregation and dispersion of *BOBbots*. We demonstrate that a rigorously analyzed algorithm can be translated to these simple robots by mapping probabilities onto the physics of interactions, yielding the desired behaviors without digital computation, communication, or sensing.","tags":["programmable-matter","swarm-robotics","active-matter","aggregation","dispersion","bobbots"],"title":"Programming Active Cohesive Granular Matter with Mechanically Induced Phase Changes","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"Abstract Our world is filled with systems of entities that collaborate in motion, both natural and engineered. These cooperative distributed systems are capable of sophisticated and surprising emergent behavior that arises from the comparatively simple interactions of their members. A model system for emergent collective behavior is programmable matter, a physical substance capable of autonomously changing its properties in response to user input or stimuli from its environment. This dissertation studies distributed and stochastic algorithms that control the local behaviors and interactions of individual modules of programmable matter to induce complex collective behavior at the macroscale. It consists of four parts.\nIn the first, a new distributed computing model of programmable matter called the canonical amoebot model is proposed. A key goal of the canonical amoebot model is to bring algorithmic theory closer to the physical realities of programmable matter hardware, especially with respect to concurrency and energy distribution. Two complementary protocols are presented that together can extend existing sequential, energy-agnostic algorithms for programmable matter to the more realistic concurrent, energy-constrained setting without sacrificing correctness, assuming the original algorithms satisfy certain conventions.\nIn the second part, stateful distributed algorithms that use amoebot memory and communication are presented for leader election, object coating, convex hull formation, and asynchronous hexagon formation. The first three algorithms are proven to have runtimes that are linear in the amoebot system size when assuming a simplified sequential setting. The final algorithm for hexagon formation is instead proven to be correct under unfair asynchronous adversarial activation, the most general of all adversarial activation models.\nIn the third part, the stochastic approach to self-organizing particle systems is presented. This approach combines distributed algorithms with ideas from statistical physics and Markov chain design to replace algorithm reliance on memory and communication with biased random decisions, requiring little to no memory and gaining inherent self-stabilizing and fault-tolerant properties. Using this stochastic approach, algorithms for compression, shortcut bridging, and separation are designed and analyzed.\nFinally, a two-pronged approach to \u0026quot;programming\u0026quot; physical ensembles across scales is presented. This approach leverages the physics of local interactions to pair theoretical, algorithmic abstractions of self-organizing particle systems with experimental robot systems of active granular matter that intentionally lack digital computation and communication. We demonstrate how the behavior of robots whose design physically embodies salient features of an algorithm can be predicted by the algorithm\u0026rsquo;s theoretical analysis, treating the ensemble behaviors of phototaxing, aggregation, dispersion, and object transport.\n","date":1615824000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1615824000,"objectID":"c44c7a365e4b74945c1648985d9a9ad9","permalink":"https://jdaymude.github.io/event/2021asu-dissertationdefense/","publishdate":"2021-03-15T09:00:00-07:00","relpermalink":"/event/2021asu-dissertationdefense/","section":"event","summary":"In this dissertation defense, I treat three questions on emergent behavior in programmable matter: What are the minimum individual capabilities necessary to achieve a collective behavior? How can existing algorithms be enhanced to capture realistic assumptions? How can digital algorithms be translated for simple, analog systems?","tags":["programmable-matter","swarm-robotics","active-matter","self-organization","distributed-algorithms","bio-inspired-algorithms","markov-chains","amoebot-model","energy","leader-election","coating","convex-hull","binary-counter","compression","bridging","separation","phototaxing","aggregation","dispersion","smarticles","bobbots"],"title":"Collaborating in Motion: Distributed and Stochastic Algorithms for Emergent Behavior in Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"Abstract The world is filled with systems of entities that collaborate in motion, both natural and engineered. These cooperative distributed systems are capable of sophisticated emergent behavior arising from the comparatively simple interactions of their members. A model system for emergent collective behavior is programmable matter, a physical substance capable of autonomously changing its properties in response to user input or environmental stimuli. This dissertation studies distributed and stochastic algorithms that control the local behaviors of individual modules of programmable matter to induce complex collective behavior at the macroscale. It consists of four parts.\nIn the first, the canonical amoebot model of programmable matter is proposed. A key goal of this model is to bring algorithmic theory closer to the physical realities of programmable matter hardware, especially with respect to concurrency and energy distribution. Two protocols are presented that together extend sequential, energy-agnostic algorithms to the more realistic concurrent, energy-constrained setting without sacrificing correctness, assuming the original algorithms satisfy certain conventions.\nIn the second part, stateful distributed algorithms using amoebot memory and communication are presented for leader election, object coating, convex hull formation, and hexagon formation. The first three algorithms are proven to have linear runtimes when assuming a simplified sequential setting. The final algorithm for hexagon formation is instead proven to be correct under unfair asynchronous adversarial activation, the most general of all adversarial activation models.\nIn the third part, distributed algorithms are combined with ideas from statistical physics and Markov chain design to replace algorithm reliance on memory and communication with biased random decisions, gaining inherent self-stabilizing and fault-tolerant properties. Using this stochastic approach, algorithms for compression, shortcut bridging, and separation are designed and analyzed.\nFinally, a two-pronged approach to \u0026quot;programming\u0026quot; physical ensembles is presented. This approach leverages the physics of local interactions to pair theoretical abstractions of self-organizing particle systems with experimental robot systems of active granular matter that intentionally lack digital computation and communication. By physically embodying the salient features of an algorithm in robot design, the algorithm\u0026rsquo;s theoretical analysis can predict the robot ensemble\u0026rsquo;s behavior. This approach is applied to phototaxing, aggregation, dispersion, and object transport.\n","date":1615766400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1615766400,"objectID":"3e226c3fc3d17596e6fd0e78ba4c2145","permalink":"https://jdaymude.github.io/publication/daymude2021-phdthesis/","publishdate":"2021-03-15T00:00:00Z","relpermalink":"/publication/daymude2021-phdthesis/","section":"publication","summary":"The world is filled with systems of entities that collaborate in motion, both natural and engineered, that are capable of sophisticated emergent behavior arising from simple interactions of their members. This PhD dissertation collects my work on the amoebot model, stateful and stochastic distributed algorithms for programmable matter, and translations to active granular matter.","tags":["programmable-matter","swarm-robotics","active-matter","self-organization","distributed-algorithms","bio-inspired-algorithms","markov-chains","amoebot-model","energy","leader-election","coating","convex-hull","binary-counter","compression","bridging","separation","phototaxing","aggregation","dispersion","smarticles","bobbots"],"title":"Collaborating in Motion: Distributed and Stochastic Algorithms for Emergent Behavior in Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"I\u0026rsquo;m not ashamed to admit that I spent much of my childhood wanting to be a Jedi. My sister and I would duel for hours in the backyard with our plastic lightsabers, having to pause between whacks and parries to negotiate whose limbs were still attached or how far back we were supposed to move when the other pushed with the Force. As a teenager, The Force Unleashed on the Wii was magic: my remote was my lightsaber, my nunchuk was my connection to the Force, and the galaxy was filled with Stormtroopers to send flying. (Too bad it kind of sort of isn\u0026rsquo;t canon.) Now, as an adult and a whole sequel trilogy and two seasons of The Mandalorian later — not to mention the nine seasons of The Clone Wars that I\u0026rsquo;m still catching up on — I\u0026rsquo;m all in on Star Wars growing up with me, learning how to tell new and more mature stories. Jedi: Fallen Order is exactly that, putting the player at the center of a decent Jedi story with slick Jedi combat.\n Jedi: Fallen Order takes place during The Purge, which for the uninitiated is a period of Star Wars history just after the majority of Jedi are executed by their clone allies in Revenge of the Sith (Order 66). The fledgling Empire casts the few Jedi who survive as traitors to the Republic, hunting them down to either kill them or turn them to the Dark Side as Inquisitors (ex-Jedi who hunt Jedi). You play as Cal Kestis, a padawan who experienced deep personal loss and trauma during Order 66 and has been concealing his powers to survive The Purge. Other major characters include Cere Junda, an ex-Jedi Master who severed her connection with the Force after an especially traumatic event during The Purge, and a Nightsister whose people were killed in genocide during the Clone Wars. This is a Star Wars story where nobody\u0026rsquo;s okay and the heroes are the ones who are brave enough to believe in one another as they heal.\n The gameplay absolutely does what it needs to do to make you feel like a Jedi, from customizing your lightsaber to dueling against powerful adversaries to bonding with a droid companion. I think all of those things were non-negotiables for a modern Star Wars game, and as such, it suffices to say that Jedi: Fallen Order does them well. What\u0026rsquo;s really special about this game is how cool it makes you feel despite Cal not being the greatest of Jedi. He\u0026rsquo;s hidden his abilities for years, presumably. At best, he\u0026rsquo;s just rusty and has forgotten a lot of his training; at worst, his trauma and guilt pushes his connection with the Force towards fear and unpolished lack of control. In the early stages of the game, Cal can\u0026rsquo;t even move stuff around with the Force; he can wall-run, however (Respawn just couldn\u0026rsquo;t resist sprinkling in a little Titanfall, could they?). His best ability, psychometry, makes him a better anthropologist than Stormtrooper-slayer: he can sense an object\u0026rsquo;s history by touching it, filling out the backstory of the different planets and societies he interacts with.\n The five playable planets in this galaxy far, far away are largely linear, keeping you moving towards your next plot point. There\u0026rsquo;s not a side quest to be seen, and the only exploration Cal can do is to veer off the main path for a slightly less obvious path where he might find a secret or unlockable cosmetic. (As an aside, I love that Cal wears ponchos — as opposed to, I don\u0026rsquo;t know, Jedi robes? — but I can\u0026rsquo;t get over how over half of them are badly-fitting, hoodless, plastic raincoats.) 100%-ing Jedi: Fallen Order is a fine and relatively quick experience (except for the very Star Wars and very bad holomaps), revisiting planets when equipped with new Force abilities to get into previously inaccessible nooks and crannies. This feels less like a chore and more like virtual space-tourism, giving players a second chance to appreciate the beautifully crafted set design and try out the very nicely implemented photo mode.\n All in all, Jedi: Fallen Order does what it came to do: put players in the shoes of a Jedi powered by the best of what 2019 tech could offer. The experience certainly feels more self-contained and linear than what we may have hoped, but it\u0026rsquo;s good for what it is. With EA\u0026rsquo;s Star Wars exclusivity now expired, maybe Ubisoft\u0026rsquo;s Massive Entertainment will give us the beautiful, open-world Star Wars playground of little-Josh\u0026rsquo;s dreams.\nBugs I know this isn\u0026rsquo;t a bug but it\u0026rsquo;s so bad that I\u0026rsquo;m calling it one: every sad excuse for a Wookiee in this game (except Tarfull) looks like a stick with clumpy fur. To the developers at Respawn, Chewbacca would be disappointed in you.\n ","date":1611378555,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1611378555,"objectID":"33f9feeaa0dfa7398657a0f6ed8ce676","permalink":"https://jdaymude.github.io/review/videogame-jedi-fallen-order/","publishdate":"2021-01-22T22:09:15-07:00","relpermalink":"/review/videogame-jedi-fallen-order/","section":"review","summary":"*Jedi: Fallen Order* delivers a tight, linear, story-driven experience that puts the player in the shoes of a young Jedi during The Purge. The slick combat and Force-enhanced platforming are thrilling, but the real heroics are found in how the protagonists believe in one another and heal in the face of trauma. **8 / 10**.","tags":["action","adventure","role-playing","space","third-person"],"title":"Jedi: Fallen Order","type":"review"},{"authors":["Joshua J. Daymude","Jamison W. Weber"],"categories":["research"],"content":"","date":1609979700,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1609979700,"objectID":"746a6316cea0b04c0ca6044c0dce7e48","permalink":"https://jdaymude.github.io/event/2021icdcn-energydistribution/","publishdate":"2021-01-07T09:35:00+09:00","relpermalink":"/event/2021icdcn-energydistribution/","section":"event","summary":"In this talk, we present our algorithm for *energy distribution* in programmable matter. We also detail our self-stabilizing extension of the amoebot model's well-established *spanning forest primitive*. We conclude by showing how these algorithms generalize previous work to also consider energy constraints.","tags":["programmable-matter","self-organization","distributed-algorithms","bio-inspired-algorithms","biofilms","energy"],"title":"Bio-Inspired Energy Distribution for Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude","Andréa W. Richa","Jamison W. Weber"],"categories":["research"],"content":"Summary In short, individual bacterium that are metabolically stressed (lacking in nutrients) catalyze a wave of chemical signaling that inhibits the rest of the biofilm’s nutrient uptake. This allows more nutrients to flow to the stressed bacteria, effectively solving the energy distribution problem. We model energy constraints in the amoebot model by giving each particle a battery for storing energy that it can transfer to its neighbors or spend to perform actions. We assume at least one particle in the system has access to an external energy source from which it can harvest energy. The goal of our energy distribution algorithm is to coordinate the transfer of energy between particles so that all particles meet their actions’ energy demands and at least one particle can actually perform its action within a bounded amount of time. After some initial setup, our Energy-Sharing algorithm works in the following phases repeated by each particle individually:\n Communication. Particles propagate \u0026ldquo;stress\u0026rdquo; and \u0026ldquo;inhibition\u0026rdquo; signals to communicate the energy states of starving particles throughout the system. Sharing. Particles harvest energy they lack from an external source (if they have access to one) and transfer energy to neighbors that need it. Usage. Particles that are not inhibited spend their stored energy to perform actions, participating in the collective behavior. We prove that the Energy-Sharing algorithm allows the particle system to meet its energy demands every ${\\cal O}(n)$ asynchronous rounds, where $n$ is the number of particles in the system. A simulation of the Energy-Sharing algorithm can be seen below, corresponding to Figure 2 in the paper. All particles are initially idle, with the exception of the root (with external energy access) shown with a gray/black ring. The setup phase establishes the spanning forest (or tree, in this case) rooted at particle(s) with energy access; a particle\u0026rsquo;s parent direction is shown as an arc. Since all particles start with empty batteries, stress flags (shown as red rings) quickly propagate throughout the system and inhibit flags soon follow. As energy is harvested by the root and shared throughout the system, some particles (shown with yellow rings) receive sufficient energy to meet the demand for their next action but remain inhibited from using it. This inhibition remains until all stressed particles in the system receive sufficient energy to meet their demands, at which point particles (shown with green rings) can reset their inhibit flags and use their energy. After using energy, these particles may again become stressed and trigger another stage of inhibition.\n When communication of the stress/inhibit flags is disabled, the energy distribution strategy in Energy-Sharing fails (just as the bacterial biofilms fail to feed all bacteria when their signal relays are disabled). A simulation of this setting is shown below, corresponding to Figure 3 in the paper. Without the communication phase to inhibit particles from using energy while those that are stressed recharge, particles continuously share any energy they have with their descendants in the spanning forest. Thus, while the leaves of the spanning forest occasionally meet their energy demands(seen as the flickering darker green particles), even after 1000 rounds most particles have still not met their energy demand even once.\n As an independent but supporting result, we present the Forest-Prune-Repair algorithm that enables a spanning forest of particles to self-repair in the presence of crash failures so long as the set of non-faulty particles remains connected and there is at least one non-crashed root. We prove that this algorithm stabilizes in a spanning forest rooted at root particles in at most ${\\cal O}(m^2)$ asynchronous rounds, where $m$ is the number of particles that are severed from the spanning forest by crash failures.\nThe Energy-Sharing algorithm relies on an underlying spanning forest structure to communicate its stress/inhibition signals. However, if particles move as they often do in collective behaviors, this disrupts the communication structure. Thus, the Forest-Prune-Repair algorithm can be used as an underlying primitive in Energy-Sharing so that Energy-Sharing can be composed with existing amoebot model algorithms, extending them to consider energy constraints. Below is an example of Energy-Sharing composed with Basic Shape Formation, corresponding to Figure 5 in the paper.\n Since Energy-Sharing meets the system’s energy demands every ${\\cal O}(n)$ asynchronous rounds and Forest-Prune-Repair repairs any disruptions to the communication structure as particles move, a composed algorithm will not be impeded by the underlying energy distribution primitive, but may add significant overhead to its runtime. However, we observe reasonable performance in practice: for example, since hexagon formation terminates in ${\\cal O}(n)$ rounds, our proven bounds suggest that the composed algorithm could terminate in time ${\\cal O}(n^2)$ or worse but the graph below demonstrates an overhead that appears asymptotically sublinear. With the addition of more energy roots, the composed algorithm is dramatically faster, approaching the runtime achieved without energy constraints.\nAs a final, informal experiment, we performed a simulation where energy is used for reproduction, mimicking the bacterial biofilms we were inspired by. In our preliminary experiments, we obtain behavior that is qualitatively similar to the biofilm growth patterns observed by Liu and Prindle et al.; in particular, the use of communication and inhibition leads to an oscillatory growth rate. The simulation below corresponds to Figure 7 in the paper.\n ","date":1609804800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1609804800,"objectID":"17b276a90d1cc2f5ad46a8c19de4c14a","permalink":"https://jdaymude.github.io/publication/daymude2021-energydistribution/","publishdate":"2021-01-05T00:00:00Z","relpermalink":"/publication/daymude2021-energydistribution/","section":"publication","summary":"We extend the amoebot model to consider energy constraints and introduce an algorithm that distributes energy to all particles that need it to participate in the system's collective behavior. This generalizes existing algorithms in the amoebot catalogue to also respect energy constraints.","tags":["programmable-matter","self-organization","distributed-algorithms","bio-inspired-algorithms","biofilms","energy"],"title":"Bio-Inspired Energy Distribution for Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"The world of Spiritfarer is in between life and the afterlife, where the spirits of the dead run lemonade stands, go on meditation retreats, and look down on the less fortunate from skyscrapers while they prepare emotionally to pass on to the beyond. As the Spiritfarer, our protagonist Stella and her cat Daffodil are tasked with supporting reluctant spirits on their journey to the Everdoor. By building each spirit a unique home, cooking them their favorite meals, and giving them the best video game hugs I have ever seen, each spirit gradually comes to deal with their unique and challenging vestiges from the life before.\n Substance aside, Spritfarer is absolutely beautiful. The hand-drawn assets and delightful animations make the game feel like a living storybook. For a game billed as \u0026ldquo;a cozy management game about dying,\u0026rdquo; the art is remarkably bright and lighthearted. It even has its own art book, which is an accomplishment for a small indie studio. The clip below has a bunch of my favorite animations, starting with a hug (I\u0026rsquo;m telling you, the hugs are bomb) and ending with the hidden gem of Daffodil\u0026rsquo;s yawn.\n \rSpiritfarer balances its predilection for waxing philosophical on death with self-aware humor that is packed with internet in-jokes and a dash of anti-corporate sentiment. Midway through the game, Stella meets an NPC with the genre-typical responsibility of rewarding 100% completion: collect all that the game has to offer, and this spirit will give you rewards. But in a fun twist, this spirit hates her job and finds your catching, asphyxiating, cooking, and eating of \u0026ldquo;all the fish in the ocean\u0026rdquo; to be horrifying. (As an aside, Spiritfarer is yet another game that simultaneously promotes non-violence but imposes a hierarchy on nonhuman animal species that deems it non-problematic for anthropomorphic animals to kill and consume marine life including fish, squid, and octopi.)\nAs another example, we get an early nod to Tom Nook of Animal Crossing that lands not just for the many gamers who have spent most of their 2020 in New Horizons, but also for those of us who are growing increasingly concerned with the ethics of big corporations and poor treatment of workers.\n The extent to which the developers succeed in promoting positive change is mixed. Within the first five-ish hours of gameplay, Spiritfarer establishes solid representation: Stella is a Black woman, two characters are LGBTQ, and several characters struggling with their mental health are portrayed compassionately. There\u0026rsquo;s the aforementioned focus on the plight of the worker, as we meet one character leading a protest against unjust labor practices and another who was a union leader in his past life. And, of course, there is the overarching goal of helping and caring for others as they seek peace.\nThe problem is that none of these key issues feel fully fleshed out; they\u0026rsquo;re simply presented and then brushed aside by Spiritfarer\u0026rsquo;s prevailing lightness. The labor dispute is resolved by the CEO\u0026rsquo;s comedic need to use the restroom overcoming his callous business sense. Mental health struggles are seemingly assuaged by Stella\u0026rsquo;s care and comfort. It is as if the core message of the game, intended or not, is that no injustice is too big to be solved by the benevolence and persistence of the oppressed: just cook someone their favorite foods and hug them often enough, and all their internalized trauma will simply disappear.\nI\u0026rsquo;m all for meeting individual, tangible needs and loving our neighbors, but this must be done in concert with iterative, systems-level change. I won\u0026rsquo;t hold a video game to the unreasonably high standard of enacting real-world change, but if Spiritfarer is going to talk about real stuff, I will too.\n Returning to gameplay, Spiritfarer has a very satisfying play loop where each task hooks into the next. It\u0026rsquo;s quite easy to loose track of time while playing: Travel somewhere new to find new spirits and materials. Use new materials to build, grow, and craft new things. Take those new things and cook and chop and weave and smelt and crush them into yet other things. Realize that you don\u0026rsquo;t have the things to meet your spirit passengers' food/improvement requests. Travel to a new place in search of those things. Repeat.\nThis satisfying loop lasts until roughly 75% through the game, at which point you and your ship become so capable of overproducing that many of the management tasks become irrelevant. I just had to remember to feed people during my obsession with secret-hunting, hopping between islands and doing very little to advance the story.\nThe platforming/metroidvania aspects of the game come in exploring the various islands, where new abilities allow you to reach literally greater heights in your search for materials, side quests, and upgrade blueprints. This never feels particularly overwhelming (like having to remember a specific location with a specific secret to come back to), though the quest log and the mail inventory could have been far better organized. (Also, Thunder Lotus, would it have been narrative breaking to let me check the ship\u0026rsquo;s map without having to go back to the Captain\u0026rsquo;s chamber? I know it\u0026rsquo;s powered by the Everlight, but Stella always has the Everlight on her\u0026hellip;)\n Spritfarer didn\u0026rsquo;t quite live up to the deeply thoughtful reflection on life and dying that I expected it to be, but it was a delightful game. I enjoyed the little moments — passing jokes, conversations with my spirit passengers, and those hugs — despite the fact that the narrative could have been a bit more explicit and punchy with its key points. As I write this, I realize I likely missed a small handful of those meandering, serendipitous moments that end up being the most memorable. In that sense, my take on Spiritfarer can be summed up by one of the first lines from Charon, Stella\u0026rsquo;s predecessor:\nI cannot say that I am sad to leave, but I still had a few things left to do here.\nTake care of each other.\nBugs I only encountered two bugs during my playthrough, and both were minor.\n After rearranging the buildings on my ship, one of my passengers became stranded in the attic of the chicken coop, inaccessible to me and seemingly unaware of their predicament. This reset after quitting to the main menu. While running back and forth between the bellows in the Forge, Daffodil glitched. Her positioning reset after leaving the Forge. \rFinally, a mini-rant on something that isn\u0026rsquo;t so much a technical bug as a design flaw: the secret achievements \u0026ldquo;Loose Lips\u0026rdquo; and \u0026ldquo;Sealed Lips\u0026rdquo; should absolutely not be in the game. Without spoilers, these achievements are unlocked based on engaging in a main quest conversation that — depending on how you play — can occur quite late in the game. Choose one dialogue option, you get \u0026ldquo;Loose Lips\u0026rdquo;; choose the other, you get \u0026ldquo;Sealed Lips.\u0026rdquo; Unless you know this ahead of time and do a janky hack of getting one achievement to pop, immediately quitting the game, and then redoing the conversation the other way, getting both achievements requires two playthroughs. These are the only achievements that cannot be obtained in a single run, and Spiritfarer is not a game with significant replay potential. This feels like a design flaw, where user experience clashes with the game\u0026rsquo;s systems.\n","date":1602130372,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1602130372,"objectID":"b4159e5ee17494ea6104dc2055b6da31","permalink":"https://jdaymude.github.io/review/videogame-spiritfarer/","publishdate":"2020-10-07T21:12:52-07:00","relpermalink":"/review/videogame-spiritfarer/","section":"review","summary":"This is a game about caring and compassion backed by vibrant, hand-drawn art that feels like a living storybook. Many of the narrative's reflections on life and dying are uniquely engaging for a videogame, though they don't always land consistently. Like those in the lives it portrays, *Spiritfarer*'s best moments are the small ones: a vista, a joke, a hug. **7 / 10**.","tags":["management","exploration","platformer","metroidvania"],"title":"Spiritfarer","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["teaching"],"content":"I\u0026rsquo;ve seen a handful of articles in the last week about pool testing and sample pooling for COVID-19. The gist of this technique is simple: to make our limited supply of test kits (reagents) stretch farther, mix several people\u0026rsquo;s samples together and then test the mixture for COVID-19. Ideally, if the test comes back negative, everyone in that \u0026ldquo;sample pool\u0026rdquo; could be declared COVID-free using just one test. Otherwise, if the mixture comes back positive, then additional tests are needed to find the individual positive samples.\nI\u0026rsquo;m far from a public health and epidemiology expert, but as an enthusiastic computer scientist I can\u0026rsquo;t help but see binary search (or more generally, $k$-ary search) all over this pool testing technique. My goal in this post is to draw out this connection, illustrating why the efficiency of $k$-ary search (and of pool testing, by extension) is so attractive. I\u0026rsquo;ll also do some crude math to explore what happens to pool testing if there are too many infections in the population and how many tests it could actually save.\nIf you\u0026rsquo;re not interested in any of that but want to know more about pool testing, NPR has a short primer and the FDA has put out a statement on the topic. On the other hand, if you\u0026rsquo;re interested in more serious research on the topic, this footnote1 is for you.\nFinding Things Fast In a search problem, the goal is to find a specific item $x^*$ amidst a whole bunch of possibilities $(x_1, x_2, \\ldots, x_n)$. It\u0026rsquo;s like Where\u0026rsquo;s Waldo if Waldo were $x^*$ and each $x_i$ was a person on the page. Or, perhaps more practically, it\u0026rsquo;s the way you give your favorite maps app a specific address $x^*$ and it has to find that place\u0026rsquo;s data (latitude/longitude, reviews, etc.) amongst all possible places $x_i$ in its gigantic database.\nA not-so-great approach to playing Where\u0026rsquo;s Waldo is to make a list of every person on the page and check them one-by-one to see if they\u0026rsquo;re Waldo. (This is, perhaps, an entertaining way to play since you get to appreciate all the fun and ridiculous details, but we\u0026rsquo;re going for efficiency here). In computer science, we call this strategy — or \u0026ldquo;algorithm\u0026rdquo; — brute force search: when all else fails, just try everything. How bad can this be? Well, in the worst case Waldo might be the very last person in our list, so we would have had to check all $n$ people before we found him. So, knowing that the least clever search strategy makes us try $n$ times before we find Waldo, can we do better?\nImagine that you have a friend who already knows where Waldo is and has agreed to help you out by telling you which half of the page he\u0026rsquo;s on (left or right). Now you only have to search half of the possibilities, or roughly $n/2$ people. Say your friend\u0026rsquo;s really helpful, and they\u0026rsquo;ll let you do this as many times as you want: they\u0026rsquo;ll keep telling you which half of the remaining section Waldo\u0026rsquo;s in until you find him. So at first you have $n$ people to look through, then after your friend helps once you have $n/2$, and after helping again you have $n/4$, and then $n/8$, and so on. In general, if your friend has helped you $i$ times, then you only have $n/(2^i)$ people to look through. Doing a little algebra, after your friend has helped you $\\log_2(n)$ times, you only have $n/(2^{\\log_2(n)}) = n/n = 1$ person left, and that person is Waldo. This strategy is binary search: \u0026ldquo;binary\u0026rdquo; because your friend splits the possibilities in two each time they help.\nIt may have been a while since you\u0026rsquo;ve brushed up on your logarithms, so let\u0026rsquo;s look at some numbers to get a sense of how fast this is. An average Where\u0026rsquo;s Waldo puzzle has roughly $n = 500$ people on it. So, if we were to use brute force search, we\u0026rsquo;d be looking through all $n = 500$ people. However, if we had our helpful friend to do binary search with us, we\u0026rsquo;d only need to ask their help $\\log_2(500) \\approx 9$ times before we found Waldo! Not bad, hey?\nThe key to binary search is in throwing away whole chunks of possibilities all at once, rapidly narrowing our search field. $k$-ary search is just a generalization, where instead of splitting the possibilities in half each time, we split them into $k$ equal parts. We then keep the $n/k$-sized section containing our target and repeat, requiring a total of $\\log_k(n)$ search operations to find our target (which is even faster than binary search!). Before we call it quits with Waldo and get back to pool testing, it\u0026rsquo;s worth pointing out that there are plenty of ways to make searching even faster (especially with parallel algorithms). There are even search algorithms specifically for finding Waldo, if that\u0026rsquo;s your jam.\nPool Testing, Meet k-ary Search Shifting our perspective on testing from personal experience (\u0026ldquo;Have I contracted COVID-19?\u0026quot;) to the population level (\u0026ldquo;Who in our communities are positive?\u0026quot;), we can frame testing as a search problem. Among all individuals $(x_1, x_2, \\ldots, x_n)$, we want to find those $x_i$\u0026rsquo;s that are positive for COVID-19 so they can isolate and get timely medical care. In this setting, brute force search would be individually testing every single person — and that\u0026rsquo;s way more tests than we have. The current US strategy of only testing symptomatic cases isn\u0026rsquo;t more \u0026ldquo;efficient\u0026rdquo; than brute force, it\u0026rsquo;s just brute force search on a (hopefully) small subset of the total population.\nPool testing, on the other hand, is similar to $k$-ary search. Just like our helpful friend telling us which half of the page Waldo isn\u0026rsquo;t on, a single pool test ideally shows us a whole group of people that we can declare COVID-19 negative; in our search for positive cases, we can look elsewhere.\n Consider the situation depicted above, with $128$ total individuals needing tests but only $4$ of them COVID-19 positive (shown in red). If we tested all $128$ people individually (brute force), we would need $128$ tests. But suppose we could reliably test pools of up to $16$ people at once, as shown in the first row. Only three of the $128/16 = 8$ pool tests would come back positive, allowing us to immediately rule out $5 \\times 16 = 80$ negative individuals. For the three positive pools, we need to do additional tests to find the positive cases. This could be done by individually testing everyone in the positive pools2 — effectively using smaller brute force — requiring $3 \\times 16 = 48$ additional tests. Alternatively (assuming we had enough samples), we could do pool testing again, this time on smaller pools.3 So long as there aren\u0026rsquo;t too many positive samples (something we\u0026rsquo;ll revisit shortly), this will help us save on tests: in the picture, we only end up needing $30$ additional tests to handle the $48$ individuals in positive pools. The table below compares the number of tests used by each testing strategy in this example, along with the number of samples per person required.\n Testing Strategy Tests Used Tests Saved Samples per Person Individual (brute force) $128$ $0\\%$ $1$ Pool Testing (one round) $56$ $56\\%$ $1$ Pool Testing (repeated) $38$ $70\\%$ $\u0026gt; 1$ What Can Go Wrong? At least a few serious things:\n Added logistical complications for labs, including tracking which individuals' samples are in which pools, added mixing steps, etc. The possibility of larger false-negative rates (i.e., testing negative when the sample was, in fact, positive) due to samples getting diluted when they\u0026rsquo;re mixed into pools.4 A loss of efficiency when there are too many positive samples. For the rest of this post, I\u0026rsquo;m going to focus on that last problem. Pool testing\u0026rsquo;s strength lies in its ability to rule out large groups of negative cases at once, as we saw in the example. But with too many positive cases, the likelihood of pools testing positive becomes much higher, requiring a greater number of subsequent tests. At what point does pool testing end up using more tests than if we just tested everyone individually?\nInstead of repeated pool testing (like in our example above), consider the more practical protocol of doing only one round of pool testing and then testing all samples in positive pools individually. If we have $n$ total samples, our pool size is $p$, and $x$ pool tests come back positive, then we will use a total of $n/p + xp$ tests: $n/p$ pool and $xp$ individual. Since we\u0026rsquo;d use $n$ tests doing brute force, pool testing only saves us tests if $n/p + xp \u0026lt; n$, or equivalently, if: $$x \u0026lt; (n/p)(1 - 1/p)$$\nTo connect the number of positive pools $x$ we\u0026rsquo;ll have based on how many positive cases are in the population, let $r$ be the probability that any given sample is COVID-19 positive. The probability that a pool of size $p$ contains a positive sample is $1 - (1 - r)^p$. There are $n/p$ total pools, so the expected (average) number of positive pools is: $$E[x] = (n/p)(1 - (1 - r)^p)$$ Therefore, we save on tests using pool testing in expectation if: $$\\begin{align*} (n/p)(1 - (1 - r)^p) \u0026amp;\u0026lt; (n/p)(1 - 1/p) \\\\ r \u0026amp;\u0026lt; 1 - p^{-1/p} \\end{align*}$$\n The above graph plots this efficient region. The x-axis is the pool size $p$ and the y-axis is the infection rate $r$. Any point in the blue region represents a $(p,r)$ pair for which pool testing uses less tests than brute force in expectation. For example, with a pool size of $p = 16$, our crude math suggests that pool testing is more efficient for infection rates up to, coincidentally, $r \\approx 16\\%$. This would be a terrifyingly high infection rate (at the time of this writing, the CDC reports a $\\approx 1\\%$ positive case rate in the US), so it seems that in realistic settings even one round of pool testing would save a lot of tests.\nTaking Our Savings to the Bank To recap, we\u0026rsquo;ve seen how pool testing is related to $k$-ary search, how both of these techniques leverage the ability to rule out large groups of possibilities to narrow things down quickly, and how pool testing will save us tests so long as the infection rate is low enough. The last thing to nail down is how many tests are actually saved. From our work above, we know that the expected number of tests saved using one round of pool testing is: $$\\begin{align*} E[\\text{# tests saved}] \u0026amp;= \\text{# tests for brute force} - E[\\text{# tests for pool testing}] \\\\ \u0026amp;= n - (n/p + E[\\text{# positive pools}] \\cdot p) \\\\ \u0026amp;= n - n/p - (n/p)(1 - (1-r)^p)p \\\\ \u0026amp;= n(-1/p + (1-r)^p) \\end{align*}$$ The fraction of tests saved is just the number of tests saved divided by $n$, so a single round of pool testing in pools of size $p$ uses a $(1-r)^p - 1/p$ fraction less tests. The following plot shows this equation for different pool sizes $p$ as a function of the infection rate $r$.\n This shows that larger pool sizes have the potential for saving more tests, but also degrade in their efficiency more rapidly as the infection rate $r$ grows. Eventually, if the infection rate becomes too large, all four curves become negative and pool testing ends up using more tests than brute force. This corresponds to leaving the efficient region shown in the previous graph. If you\u0026rsquo;re having a hard time interpreting these curves, the following table compares pool testing with $p = 4$ (blue) and $p = 16$ (green).\n Pool Size Tests Saved at $r = 1\\%$ Tests Saved at $r = 5\\%$ Infection Rate for No Savings $p = 4$ $71\\%$ $56\\%$ $r = 29\\%$ $p = 16$ $79\\%$ $38\\%$ $r = 16\\%$ The key takeaway is that from a purely test-savings perspective, pool testing does a remarkable job for any reasonable pool size. While it is true that pool testing can end up using more tests than traditional testing if the infection rate grows too large, my crude math suggests that the infection rate would need to be quite high ($r \u0026gt; 10\\%$) before this inefficiency would be noticeable. At today\u0026rsquo;s US infection rate of $r \\approx 1\\%$, we could be $70\\%$ more efficient with our limited supply of testing reagents, helping more people get tested more often. Perhaps if this technique were widely used, we would all be that much closer to safely getting on with our lives.\n Cherif et al. 2020 detail a recent mathematical model for pool testing and Yelin et al. 2020 characterize its dilution and false-negative rates. The references in the Yelin paper also cover deeper mathematical analysis (e.g., Dorfman 1943) and how pool testing has been used to combat infectious disease in the past (e.g., for malaria in Taylor et al. 2010).\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n From my brief sifting of the literature, practical implementations of pool testing only use one round of pool tests: roughly $65\\%$ of each sample is used in a pool test, and the remaining $35\\%$ is saved for an individual test in case the pool comes back positive. Repeated pool testing doesn\u0026rsquo;t seem to be used in practice, presumably because it would rely on collecting additional swab samples per person.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n I\u0026rsquo;ve depicted the subpool tests in a binary search kind of way where each positive pool is split in half and retested, but they could be broken into any number of groups.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n Yelin et al. 2020 estimate that the false-negative rates for pools as large as $16$ or $32$ is roughly $10\\%$ based on their experiments. I chose not to do my speculative math for dilution and false-negative rates because I don\u0026rsquo;t understand how PCR tests actually work and don\u0026rsquo;t believe in blindly oversimplifying things for the sake of nice math.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n ","date":1594328684,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1594328684,"objectID":"0b95edb72f5345714bdd478f3fb04a2b","permalink":"https://jdaymude.github.io/post/pool-testing-is-kary-search/","publishdate":"2020-07-09T14:04:44-07:00","relpermalink":"/post/pool-testing-is-kary-search/","section":"post","summary":"\"Pool testing\" has been getting media attention lately as a technique for stretching our limited supply of COVID-19 test kits while delivering accurate results. In this post, I connect pool testing to the classical k-ary search algorithm and analyze its advantages over traditional testing.","tags":["covid-19","pool-testing","search-algorithms"],"title":"Pool Testing is k-ary Search for COVID-19","type":"post"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Ori and the Will of the Wisps was released on March 10, 2020 — one day before many in the United States were put under stay-at-home orders to slow the spread of COVID-19. In the following months, our leaders abdicated their responsibility to coordinate a comprehensive response as the non-essential of us remained at home, wringing our hands and feeling powerless to stop our world from slipping into shambles. So when Ori opened with Naru, Gumo, and Ori working to restore Ku — a young owl with a malformed wing — my emotions were immediately invested. When the first major chapter involved ridding a historic watermill/library of a corrupted monster poisoning the water, my determination was fixed. And when Grom asked Ori \u0026ldquo;Want to make [the Wellspring Glades] a better place?\u0026rdquo; I nearly shouted \u0026ldquo;yes!\u0026rdquo; at the screen. Beautiful graphics, slick gameplay, and huge improvements over the original game aside, Ori and the Will of the Wisps is a game about healing, restoration, and hope — three things that run at a high premium in today\u0026rsquo;s world.\n One more philosophical point before moving on to gameplay: I was pleased to see the thought given to the nature of evil and the role of violence in resisting it. While killing corrupted creatures is commonplace in the Ori series, there is also a consistent gravity around death and loss. This sequel explores these themes more thoroughly than the original. Without giving specifics away, only one enemy boss is actually murdered (and, interestingly, not by Ori). Moreover, the main antagonist is one that deserves the player\u0026rsquo;s hate and empathy equally, as summed up in this bit of dialogue:\n I heard what happened to your friend, and I am sorry. Sorry for your friend, and for the one that hurt her. Nothing\u0026rsquo;s fouler than when the strong hurt the weak.\n— Tokk, Ori and the Will of the Wisps\n There\u0026rsquo;s a \u0026ldquo;we hurt ourselves when we hurt others\u0026rdquo; in here that\u0026rsquo;s revisited later in the game, when a character who once wanted the warmth of the light rejects it and chooses instead to remain isolated in darkness. I was left with the impression that this was an emotionally heavier fate than death.\n In terms of gameplay and design, Ori and the Will of the Wisps surpasses its predecessor (Ori and the Blind Forest) in every way, and then some. In short, this is a must-play if you liked the original, and is the place you should start if you\u0026rsquo;re new to the series. Much has already been written about these improvements, like how Moon Studios created entirely new technologies to fit its beautifully crafted 3D assets in a 2D world. The world is filled with expressive characters, vibrant and responsive foliage, and gorgeous foreground/background effects that express depth. Role-playing elements give players newfound choice over Ori\u0026rsquo;s evolution. The boss fights blend the newly fluid combat system with the series' emblematic choreographed escape sequences. Gareth Coker returns with a triumph of a soundtrack that is deeply integrated with the rest of the game\u0026rsquo;s design.\n Improved replayability deserves its own treatment. In Ori and the Blind Forest, collectibles were limited to Life and Energy Cells that increase the amount of health and ability energy Ori has, respectively. After finishing the main story, achievements and 100%-ing the game are the only incentives for finding all these secrets. In Ori and the Will of the Wisps, however, side quests and new collectibles give meaning to the secret hunting. With Gorlek Ore that Ori collects, Grom builds new structures in the Wellspring Glades for Moki to live in. Tolek plants Seeds that synergize with Ori\u0026rsquo;s abilities to make new areas of the Glades accessible. Ability Shards unlock useful augmentations of Ori\u0026rsquo;s abilities. Hardcore fans can take on the \u0026ldquo;*-less run,\u0026rdquo; requiring a complete run in under 4 hours without dying, spending Spirit Light, or equipping shards. These goals enhance the actual play experience, greatly improving the replay value.\nBugs In what is otherwise an pristine and polished experience, Ori and the Will of the Wisps has several frustrating bugs:\n Spirit Charge is a mid-game ability whose primary purpose is to toss projectiles that fall back down, allowing Ori to Bash off of them and reach new heights. The \u0026ldquo;Spirit Rocket\u0026rdquo; bug causes all charges to instead fire off like missiles, happily ignoring gravity and stranding Ori without a lift. Thankfully, this bug seems to fix itself after a full game quit-and-restart. There were occasional rendering issues. After a long play session, the game would freeze and lag (again, quitting and restarting seemed to fix the problem). Later, after unlocking the Launch ability, Ori seemingly could move faster than the game could handle: Ori could Launch off-screen without the camera following, and once the camera caught up the environment occasionally wouldn\u0026rsquo;t render. Even after 100%-ing a run (and getting the corresponding achievements), the Energy Cell counter stays at 19/20, capping the progress tracker at 99% complete. This is uniquely maddening for people like me who live for the 100% completion. ","date":1591592301,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591592301,"objectID":"ee66b4bd704f01c5f7b45ed78972f844","permalink":"https://jdaymude.github.io/review/videogame-ori-and-the-will-of-the-wisps/","publishdate":"2020-06-07T21:58:21-07:00","relpermalink":"/review/videogame-ori-and-the-will-of-the-wisps/","section":"review","summary":"In a triumphant return, *Ori and the Will of the Wisps* does everything a sequel should and more, bringing additional depth to all aspects of the experience. With the exception of some frustrating bugs, *Ori*'s beautifully rendered environments, lovingly crafted characters, and slick platforming and combat mechanics have set the bar for metroidvania so much higher. **8 / 10**.","tags":["role-playing","platformer","metroidvania","side-scrolling"],"title":"Ori and the Will of the Wisps","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["creative"],"content":"I\u0026rsquo;m excited to announce that I\u0026rsquo;ve added art and entertainment reviews to the site. I\u0026rsquo;ve posted 28 reviews of books, movies, and video games so far; I will likely extend this to also include TV shows and music in the future. This post is a brief look at why I review things (it\u0026rsquo;s not for glorification of my own hot takes, I promise) and a bit about my experience with hacking the Hugo Academic theme to support reviews.\nIn case my philosophy behind reviews and hacking the site theme are less interesting to you than actual reviews, here are a few that I was particularly happy to rediscover:\n Overcooked, a review from 2016 about the frantic cooperative cooking game. Half the Sky, a review from 2017 about the book that played a pivotal role in my understanding and caring about the global state of women\u0026rsquo;s rights. The Phantom Tollbooth, a review from 2019 about one of my favorite books. Batman: Arkham City, a review from 2019 in which I question Batman\u0026rsquo;s approach to criminal justice and our assumptions about video game minions. The Entertainment Backlog Over the last decade, I\u0026rsquo;ve been iterating over ways to track my progress and remember my experiences with various books, movies, TV shows, music, and video games. It bothers me that I own more content than I have time to experience and that I often forget my key takeaways just months after finishing something. What came of my efforts was the entertainment backlog, an informal and messy system of spreadsheets, notes, and written reviews.\n In concept, the backlog is simple: it\u0026rsquo;s a list of content (books, movies, music, games, etc.) organized by progression. When I\u0026rsquo;ve purchased something (or, in the streaming era, when I\u0026rsquo;m interested in it and have access to it), I add it to the backlog as \u0026ldquo;Owned.\u0026rdquo; When I start reading/watching/playing it, it becomes \u0026ldquo;In-Progress.\u0026rdquo; Once I\u0026rsquo;m done with it, it becomes \u0026ldquo;Completed.\u0026rdquo; With just these three stages, I\u0026rsquo;m able to keep track of what I\u0026rsquo;m engaging with and avoid forgetting about it and having to start over a year or more later. As a caveat, if ever something is boring me, I just drop it from the backlog altogether. The system is there to support me, not force me to complete uninteresting stuff.\nImplementation of these three stages can come in a variety of formats. The gold standard would probably be some dedicated, slick piece of software. I\u0026rsquo;ve gotten by with a mix of spreadsheets, a Trello board (Owned/In-Progress/Completed are lists, and each item is a card), and an \u0026ldquo;art and entertainment journal\u0026rdquo; where I write about what I engage with daily. Regardless of how it\u0026rsquo;s implemented, the point is to not let things go stale.\nThe Role of Reviews The fourth and final stage of the backlog is \u0026ldquo;Reviewed,\u0026rdquo; which is where \u0026ldquo;Completed\u0026rdquo; items go once I\u0026rsquo;ve written some thoughts down about them. Traditionally, my reviews have had a numerical rating and a written portion, though as I get older I find that my ratings are less useful to me than my reflections.\nI write reviews for two reasons: to avoid forgetting my experiences and to combat entertainment consumerism with reflection. These goals work together. When entertainment is reduced to \u0026ldquo;empty calories\u0026rdquo; because I don\u0026rsquo;t spend any time reflecting on it, I\u0026rsquo;m always hungry for more. When I know I will invest thought and energy into my entertainment, I can be more selective about committing to higher quality experiences. In turn, I can take the time to listen to and be impacted by what these experiences have to say in their stories and art.\nRest and play are non-negotiables in my life, but taking time to reflect thoughtfully on what I\u0026rsquo;m engaging with helps me keep a healthy relationship with less intentional entertainment and make space for more challenging and impactful art and nonfiction.\nHacking the Academic Theme This was my first real attempt at working with HTML, CSS, and JavaScript beyond some Codecademy lessons I did in undergrad, so building out reviews was an uphill climb, even when mostly working with preexisting structures provided by the Academic theme. No particular lesson learned is a big enough deal to write about, but I\u0026rsquo;m most proud of integrating third-party scripts progressbar.js and chroma.js to help with the animation and coloring of the numerical ratings at the end of each review.\n This is just a screenshot, but the real ratings animate when they\u0026rsquo;re first loaded. The animation is usually done by the time you scroll down to the bottom where the ratings actually are, but refreshing the page will let you see it in action! It\u0026rsquo;s potentially possible to delay the animation until the ratings are scrolled into view, but my knowledge of jQuery is nonexistent so I\u0026rsquo;ll be leaving that as an improvement for another day.\n","date":1590786471,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1590786471,"objectID":"8f1be3f4952d7823bb498d5ba4a31f15","permalink":"https://jdaymude.github.io/post/announcing-reviews/","publishdate":"2020-05-29T14:07:51-07:00","relpermalink":"/post/announcing-reviews/","section":"post","summary":"I'm happy to announce that art and entertainment reviews have been added to the site. This post is a brief look at why I review things and my experience with hacking the Hugo Academic theme to support reviews.","tags":["writing","programming"],"title":"Announcing Reviews","type":"post"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"Climate change has become one of many sources of existential dread that I share with my generation, albeit one that I was slow to understand. Growing up in a conservative evangelical context, global warming was right up there with evolution in terms of science that was treated as if it contested the nature of God, his creation, and humanity\u0026rsquo;s place within it. Combined with teachers that were shy about the realities of our earth\u0026rsquo;s sickness and our hand in its decay, our plight was fuzzy to me, at best.\nYet activism and justice (social, environmental, political) are in the water now — albeit often diluted and consumed in the form of social media. The United States' withdrawal from the Paris Agreement was another Trump decision to throw on the pile of his wrongdoings. The March for Science is now a three-year-old movement to use science for the common good and spur change. Natural disasters are now frequently linked to \u0026ldquo;weirding weather.\u0026rdquo; And yet, while I know climate change denial is an ostrich\u0026rsquo;s approach to problem solving, my knowledge on what the Paris Agreement says, what the March for Science marches for, or the cause-and-effect behind why the weather is now weird is embarrassingly limited. I\u0026rsquo;ve been drawing lines in the sand about \u0026ldquo;good\u0026rdquo; and \u0026ldquo;bad\u0026rdquo; approaches to our natural world without real knowledge, which is a lousy and ineffective place to try and enact change from.\nHope Jahren\u0026rsquo;s The Story of More is a wonderful primer on our natural history and how we got ourselves into the mess we\u0026rsquo;re in. By seamlessly weaving chatty stories about growing up in the American Midwest with no-nonsense, no-jargon statistics, Hope expertly guides us through Climate Science 101 less like a lecturing professor (though she is that) and more like a wise and smart friend. For nearly the entire book, she simply presents her findings without bias or interpretation — with a brief break in character to rant about how much she hates cars — seemingly trusting that we can wrestle with the implications ourselves. She shows us that it all boils down to some basic fundamentals: how many of us there are, the food we eat and where it comes from, the energy we use and how we produce it, and, finally, how all of that affects the natural world we live in.\n The idea of scaring the public for the sake of scaring it scares me\u0026hellip; People don\u0026rsquo;t make good decisions out of fear, history seems to have shown, and at least some of the time, people who are afraid are also prone to doing nothing\u0026hellip; My own goal is to inform you, not to scare you, because teaching has taught me to know and respect the difference. I\u0026rsquo;ve found that fear makes us turn away from the issue whereas information draws us in.\n— The Story of More, pages 139–140.\n The Story of More is the story of our relentless pursuit of more food, more energy, more variety, more transportation, more possessions, more comfort. Conservation was discarded in favor of efficiency; instead of targeting \u0026ldquo;more for less\u0026rdquo;, we pursued \u0026ldquo;much more for more\u0026rdquo;. This mix of scientific findings and historical narrative is powerful and helped me understand modern first-world life in new ways.\nIn the appendix entitled \u0026ldquo;The Story of Less,\u0026rdquo; Hope offers some reflection questions on how we each can use less and share more. There are no cut and dry answers (and, as it turns out, there are more problems than any one of us could solve alone), but she provides a framework that gave me clarity beyond the behavior and tone matching of today\u0026rsquo;s armchair activism. I\u0026rsquo;m very thankful for her voice.\n","date":1590526374,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1590526374,"objectID":"7317e8e9365829d2d8f24e8c56dfba48","permalink":"https://jdaymude.github.io/review/book-the-story-of-more/","publishdate":"2020-05-26T13:52:54-07:00","relpermalink":"/review/book-the-story-of-more/","section":"review","summary":"A no-nonsense, no-jargon primer on how we got to climate change through the lens of human population, food, and energy. Hope Jahren's voice is one of a gentle, wise friend urging the reader to integrate their values and their actions in an effort to use less and share more. **8 / 10**.","tags":["science","history","climate-change"],"title":"The Story of More","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["movie-review"],"content":"Dan in Real Life is about Dan Burns, a newspaper columnist that writes about his life as a widow and father to three daughters. During their annual vacation at his parent\u0026rsquo;s cabin, he meets a woman (Marie) in a bookstore that he instantly connects with. But she\u0026rsquo;s already in a relationship — with Dan\u0026rsquo;s brother Mitch, as it turns out. Just as there seems to be no place for Dan in Marie\u0026rsquo;s love life, the entire film explores Dan\u0026rsquo;s lack of place in his family: all the couples sleep in rooms while he is relegated to the basement cot; his relationship with his daughters strains as he struggles with their growing independence; his ability to connect with his nieces and nephews is burdened by his swing-and-a-miss attempts to take them to fun places. Throughout, he tries and fails to ignore his feelings for Marie, the woman in the bookstore.\nDespite Marie showing a marked lack of agency in the first half of the film, Dan in Real Life manages to avoid the tropes of a feel-good family film. Dan\u0026rsquo;s loss of his wife feels real and complicated, not just something stopping him from \u0026ldquo;true love\u0026rdquo; with Marie. He struggles to connect with everyone around him, seeming to exist on a different plane and acting out as part of it. And the only person to see through his estrangement is his youngest daughter, who he increasingly ignores when he needs her most.\nThe film\u0026rsquo;s end seems to fumble its emotional gravitas as everything falls neatly and abruptly into place. Right as I was convinced it could say something serious, it took shortcuts to thoughtful answers and wrapped it up with music and smiles. Perhaps there\u0026rsquo;s a place for that, but watching Steve Carell bring real depth to his character only to get swept into a campy happily-ever-after certainly felt dissatisfying.\n","date":1584817200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1584817200,"objectID":"73ff30ca8b62acac8e7b51ffc09a7a45","permalink":"https://jdaymude.github.io/review/movie-dan-in-real-life/","publishdate":"2020-03-21T12:00:00-07:00","relpermalink":"/review/movie-dan-in-real-life/","section":"review","summary":"In this story of family and love after loss, Steve Carell plays a widowed father of three daughters who accidentally falls in love with his brother's girlfriend. The endearing (and, at times, cringe-worthy) exploration of what it means to re-find one's place in a family builds up an impressive emotional gravitas, only to fumble it in the film's conclusion in favor of a campy ending. **6 / 10**.","tags":["drama","romance"],"title":"Dan in Real Life","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["movie-review"],"content":"It really isn\u0026rsquo;t fair to watch an early Extended Universe entry like Star Wars: The Clone Wars in 2020 after we\u0026rsquo;ve been given the gift of the Abrams-Johnson sequel trilogy. If modern Star Wars were to be described developmentally, then the original trilogy is its stellar parents, the prequel trilogy is its stumbling childhood, and this movie is its awkward pre-teen years.\nThe Clone Wars kicks off in the thick of a broader conflict set in the Outer Rim. The Hutts control the trade routes and thus the supply lines in the area. The Separatists, led by Count Dooku (and Palpatine, of course, on the down low), hatch a plan to kidnap Jabba the Hutt\u0026rsquo;s son and frame the Jedi for it. Obi-Wan, Anakin, and Anakin\u0026rsquo;s new Padawan Ahsoka set out to save Jabba\u0026rsquo;s son. And\u0026hellip; that\u0026rsquo;s pretty much it. 80% of this movie is repetitive clone-droid battles, another 10% is lightsaber battles, and in the last 10% you get heavy-handed \u0026ldquo;banter\u0026rdquo; dressed up as character development.\nStar Wars mainstays are a crutch this film leans far too heavily on, refusing to take risks with its narrative. The Clone Wars serves up a buffet of Jawas, a brief C-3PO cameo, Tatooine, the Mos Eisley jazz band, Obi-Wan\u0026rsquo;s circle light speed ship thing, lots of holographic intercoms, etc. all trying to hide the obvious: the world didn\u0026rsquo;t ask for an animated Star Wars movie. Only two years after Revenge of the Sith, it\u0026rsquo;s hard to even say this strategy wins any points in the nostalgia category. Instead, we\u0026rsquo;re left with a whole lot of nothing dressed up in royal clothes. It almost feels like sacrilege to hear the Skywalker theme played as often as it is here.\nThat\u0026rsquo;s not to say there aren\u0026rsquo;t good moments. This is the first entry in the Star Wars universe to have the droids talk as far as I remember, and it makes for some self-aware humor that the later movies definitely iterated on.\n Droid 1: \u0026ldquo;Concentrate fire on Sector 11374265!\u0026rdquo;\nDroid 2: \u0026ldquo;1137— what was that again?\u0026rdquo;\nDroid 1, grabbing the other one\u0026rsquo;s head and pointing: \u0026ldquo;Just fire right there!\u0026rdquo;\n— Star Wars: The Clone Wars, 34:32\n The relationship between Anakin and Ahsoka is also nice, when it\u0026rsquo;s not corny. Anakin even shows some level-headed maturity and humility in reminding Ahsoka that she doesn\u0026rsquo;t have to prove herself to anyone. There\u0026rsquo;s a nice touch of psychological safety and assurance there (though it seems totally constructed when compared to his raging tantrums in Episodes II and III).\nIt\u0026rsquo;s also worth mentioning that the portrayal of women in this movie is painful (though it was 2007). At one point, a droid addressing Ventress — Count Dooku\u0026rsquo;s apprentice — accidentally salutes her as \u0026ldquo;sir\u0026rdquo; and then stumbles to correct itself, only to again call her \u0026ldquo;sir.\u0026rdquo; Obi-Wan condescendingly refers to her as \u0026ldquo;darling\u0026rdquo; in his British accent during a lightsaber duel, to which she just responds by clenching her teeth and growling. Anakin gets to play the aloof and displeased male around the baby Huttlet; Ahsoka does most of the caretaking and connecting with it. The Huttlet\u0026rsquo;s mom/Jabba\u0026rsquo;s partner, who you\u0026rsquo;d think would be concerned with this whole kidnapping situation, is not even present as a background character.\nSo, was this a good movie? Not really. But I\u0026rsquo;m interested to see how the TV series evolved over the next decade, and especially how it matures into the backdrop for Rise of Skywalker that it so clearly is today.\n","date":1579460400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1579460400,"objectID":"7103715848d6f354c603e203adf88456","permalink":"https://jdaymude.github.io/review/movie-star-wars-the-clone-wars/","publishdate":"2020-01-19T12:00:00-07:00","relpermalink":"/review/movie-star-wars-the-clone-wars/","section":"review","summary":"The first animated entry in _Star Wars_ canon is a feeble one, full of heavy-handed \"banter\" and battle scenes that drag on too long. While respectable as the foundation of what eventually becomes a well-loved animated series, alone it feels like the awkward pre-teen years in the evolution of _Star Wars_. **5 / 10**.","tags":["action","sci-fi","animation"],"title":"Star Wars: The Clone Wars","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"The Outer Worlds promised to let you, \u0026ldquo;the unknown variable,\u0026rdquo; truly role-play in the wild world of Halycon. Want to be the hero and save the world? Sure, who doesn\u0026rsquo;t? Want to steer your jaded friends towards self-awareness and hope? Just might work. Want to murder everyone on sight, including major companions and story-critical characters? Have a great time, you monster. Streamers have basically tried it all, and the game does indeed deliver. I particularly enjoyed embodying some kind of scientist/intellectual with an aversion for violence and a deep need to screw some corporate tools over.\n What most impressed me was the world building packed into this tight, 40-ish hour experience. Every character looks different, has their own believable personality, and acts based on real fears and hopes. Most remember past encounters with you and have whole conversations scripted for the late-game, even when they\u0026rsquo;re just \u0026ldquo;extras\u0026rdquo; that have nothing to do with the ongoing story. Your companions are the best examples of the developers' care and attention to detail: one companion develops a love interest and wants to grab drinks with you to get your thoughts — this leads to a tipsy bar visit where you get to give dating advice. Other characters are working through past hurts and losses that shape who they are in the current narrative. It all feels very human, and that aspect alone (against the stark contrast of the very inhumane slave-like colony townships) is enough to pull you into the first several hours of gameplay and give gravity to the difficult choices you have to make.\nThe characters made me savor conversations, walking up to every NPC just to make sure I wasn\u0026rsquo;t missing personal backstories or historical context. I found myself imagining those who would be unjustly punished for my decisions to stir up trouble, or who I could win over by showing some semblance of kindness. The world felt open and full of possibility, while harboring many situations with hidden consequences.\n Unfortunately, some of this delightful, game-outside-the-game enchantment faded when I realized a very simple reality: what felt like a cliff of consequence was really just a short ledge, and every mistake I made could usually be solved by shooting my way through. This wasn\u0026rsquo;t necessarily the only solution (for example, I appreciated the go-and-kill quests that offered diplomacy as a non-violent alternative), but violence was often the path of least resistance. I slowly deteriorated from a hero who respected life — killing only when just or necessary — to a skilled mercenary with a vague conscience who also happened to enjoy conversation. The magic wasn\u0026rsquo;t there in the same way after that reality set in.\n Perhaps this is what The Outer Worlds had promised all along: that there would be many paths that one could fully explore, even if not all of are equally satisfying. It\u0026rsquo;s less that you live with your choices and more that your choices happen to the game, forcing it to bend and twist around you. And in that way, it really is a wonderful role-playing experience.\nBugs I had a syncing issue with save files between different Xbox consoles, but this may have been a fluke. There was one view on Monarch where the environment didn\u0026rsquo;t render correctly, and whole stone structures seemed to disappear. I was awarded one achievement (\u0026ldquo;Pirate Radio\u0026rdquo;) out of the blue, unsure what exactly I did to get it. ","date":1579287600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1579287600,"objectID":"3c126a78179105293586f1169bd3264f","permalink":"https://jdaymude.github.io/review/videogame-the-outer-worlds/","publishdate":"2020-01-17T12:00:00-07:00","relpermalink":"/review/videogame-the-outer-worlds/","section":"review","summary":"By genuinely adapting to your choices, _The Outer Worlds_ captures a real sense of creativity usually restricted to tabletop role-playing. The characters feel alive with memory and distinct personalities, and the world seamlessly integrates with the narrative. However, the path of least resistance is usually the violent one, and supposed cliffs of consequence are often just short ledges. **9 / 10**.","tags":["role-playing","choices-matter","space","first-person"],"title":"The Outer Worlds","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["teaching","tutorial"],"content":"My sister-in-law surprised me with a Molecube for Christmas, which combines the logic of a Sudoku puzzle with the mechanics of a Rubik\u0026rsquo;s cube. Each ball on the Molecube is one of nine colors, and the goal is to reconfigure a shuffled Molecube so each of its faces has all nine colors on it.\n It turns out that solving the Molecube is a wonderful exercise in what computer scientists call reduction, which involves transforming a problem we don\u0026rsquo;t know how to solve into one that we do, solving that version, and then translating the solution back into the original problem. In this post, I\u0026rsquo;ll give a reader-friendly primer on reduction, outline a reduction from the Molecube to the Rubik\u0026rsquo;s cube, and then wrap up by solving the Molecube with a standard Rubik\u0026rsquo;s cube algorithm.\nIf you\u0026rsquo;re interested in solving the Molecube yourself (and perhaps you\u0026rsquo;re here looking for hints), I\u0026rsquo;ve created a worksheet you can use and will point out when you should skip ahead in the post so as to avoid spoiling this delightful puzzle.\nReduction: There and Back Again Say we have a problem $A$ that we don\u0026rsquo;t know how to solve and another problem $B$ that we do know how to solve. Said another way, we have an \u0026ldquo;algorithm\u0026rdquo; that can answer any question asked in the form of problem $B$, but we have no such algorithm for problem $A$ questions. The whole idea of reduction is to:\n Take a problem $A$ question (which we don\u0026rsquo;t know how to answer) and \u0026ldquo;transform\u0026rdquo; it into a problem $B$ question (which we do know how to answer). Use the \u0026ldquo;algorithm\u0026rdquo; for problem $B$ questions to get an answer for our transformed problem $A$ question. Translate the algorithm\u0026rsquo;s answer back into the context of problem $A$. That\u0026rsquo;s it. We use a known algorithm (for problem $B$) as our workhorse for a new and unknown problem (problem $A$), and out pop solutions for our unknown problem! This powerful technique underlies almost all of theoretical computer science, giving us a tool to relate difficult problems to one another (as opposed to treating every new problem as something totally unique). I recently heard a high-profile professor in Computer Science claim that reduction is one of only two truly new ideas our discipline has ever contributed to science (though she called this idea \u0026ldquo;hierarchy\u0026rdquo;, with the other idea being \u0026ldquo;abstraction\u0026rdquo;).\nA natural question to ask next would be if all problems can be tackled with reduction. Unfortunately, in practice, finding the right translation between a pair of problems (Step 1, above) can be prohibitively difficult. Reduction is easiest when the two problems seem to have an obvious relationship we can exploit, which brings us to the Molecube and the Rubik\u0026rsquo;s cube.\nA Sudoku-Like Transformation It\u0026rsquo;s difficult to overstate how much of the Molecube\u0026rsquo;s solution is given away in its advertising as \u0026ldquo;Sudoku + Rubik\u0026rsquo;s cube\u0026rdquo;. My solution will treat this equation quite literally, starting with a transformation that relies on a Sudoku puzzle. I found this transformation by asking two simple questions:\n How are the Molecube and the Rubik\u0026rsquo;s cube similar? They\u0026rsquo;re both 3x3x3 cubes, meaning they both have 6 faces, 8 corners, and 12 edges. This totals 26 balls (on the Molecube) or blocks (on the Rubik\u0026rsquo;s cube). Their physical mechanics (spinning, twisting, etc.) are identical. Their goals are, in a way, also identical: from a shuffled configuration, reach a goal configuration. How are the Molecube and the Rubik\u0026rsquo;s cube different? Their goal configurations are different: the Molecube wants one ball of each color on each face, while the Rubik\u0026rsquo;s cube wants each face to be all the same color. There are nine colors on the Molecube, but only six on the Rubik\u0026rsquo;s cube. A block on the Rubik\u0026rsquo;s cube has 1–3 colors (one for each face it touches), while a ball on the Molecube is the same color on all \u0026ldquo;sides\u0026rdquo;. The similarities hint at a solution: though the goal configurations are different, the cubes' structures and mechanics are the same. So if I find a goal configuration for the Molecube, I can use the Rubik\u0026rsquo;s cube algorithm to handle all the tricky rearranging involved in actually getting there.\nIf that\u0026rsquo;s enough of a framework for you to attempt your own solution, feel free to download the worksheet I\u0026rsquo;ve created to help you visualize the Molecube as a Sudoku puzzle (with colors instead of numbers). You\u0026rsquo;ll want to stop reading here and come back once you\u0026rsquo;ve completed a goal configuration or if you\u0026rsquo;re stuck and need hints.\nSpeaking of hints, the best way to unlock this tricky Sudoku-like color puzzle (getting one color on each face) is to study the Molecube\u0026rsquo;s colors and structure. I asked myself the following questions (which culminated in the table at the top of the worksheet):\n How does the Molecube fit nine colors on a cube with 26 balls? How are the colors distributed over the different types of balls (centers, corners, and edges)? Are there any patterns that appear when trying to place balls of a certain color so it appears on each face exactly once? The answers to these questions are revealing. There are three balls of each color, with the important exception of Green, which only has two. Further, Green is the unique color that is on two corners. Red and Purple are each on three edges, and the remaining six colors (White, Black, Orange, Yellow, Light Blue, and Blue) are each on one center, one corner, and one edge. This information — after some careful thinking — reveals the patterns we need:\n As in the Rubik\u0026rsquo;s cube, centers opposite one another are always opposite one another (i.e., Black is always opposite White, Orange is always opposite Yellow, and Blue is always opposite Light Blue). The only way the two Green corners avoid being on the same face is if they\u0026rsquo;re opposite one another (e.g., upper-right-back and lower-left-front). The only way the three Red (or Purple) edges avoid being on the same face is if a Red (or Purple) appears exactly once in each \u0026ldquo;middle band\u0026rdquo; (shown below, left). So each middle band contains exactly one Red and one Purple. For any of the remaining colors, (e.g., Blue) there is a center of that color. This blocks the corner of that color from being in the same \u0026ldquo;layer\u0026rdquo;, so the corner must go in the layer opposite the center (shown below, right). Once the position of the corner is fixed, there is only one position the edge of that color can go. Using these rules and some trial and error, I found the solution shown below, also detailed in the worksheet solution. (An interesting aside: I don\u0026rsquo;t know if this is the only solution, but any solution works for the reduction). To relate the Molecube solution to the Rubik\u0026rsquo;s cube solution, we simply treat each 3×3 face on the Molecube as a \u0026ldquo;color\u0026rdquo; on the Rubik\u0026rsquo;s cube. (For example, the Black ball at the top-left of the White-center face becomes the Red-White-Green block on the Rubik\u0026rsquo;s cube). This completes the transformation step of the reduction.\nRubik-ing the Molecube With the difficult transformation step out of the way, the rest of the reduction is easy. You can solve any shuffled Molecube just like you would a Rubik\u0026rsquo;s cube (assuming you know how to do that), but instead of aiming to have faces with all the same color, you aim to build the goal configuration we got from the transformation (above, left). To make this easier for me to visualize, I made a 3D rendering of my solution (front view on the left, back view on the right).\nI was pleasantly surprised at how much Rubik\u0026rsquo;s cube muscle memory I still had from speedcubing in junior high (though if you need a refresher, I found this tutorial helpful). Interestingly, some of the steps in the Rubik\u0026rsquo;s cube \u0026ldquo;algorithm\u0026rdquo; are unnecessary for the Molecube. Remember the earlier observation that the Molecube\u0026rsquo;s balls are each a single color while the Rubik\u0026rsquo;s cube blocks can have 1–3 colors each? This means that the Molecube doesn\u0026rsquo;t care if its balls are rotated \u0026ldquo;in place\u0026rdquo;, though this is a problem for the Rubik\u0026rsquo;s cube (see the example below). So any steps in the Rubik\u0026rsquo;s cube algorithm that are meant to fix things like this can be skipped entirely.\n But Does It Work? To show that the reduction approach not only works but is also reasonably fast, here\u0026rsquo;s me solving the Molecube in just under 2 minutes.\n There are a lot of Rubik\u0026rsquo;s cube-inspired puzzles these days (for example, the Ghost Cube and the Pyraminx). But solving the Molecube by reduction makes me wonder just how many of these new puzzles share a similar relationship to the original Rubik\u0026rsquo;s cube. If these relationships exist, we\u0026rsquo;d find that these new puzzles aren\u0026rsquo;t really new at all; they\u0026rsquo;re just an old puzzle we know how to solve, but with new names and nice packaging.\n","date":1578340800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1578340800,"objectID":"10371ffd86fe132cdaa17347bb0c109a","permalink":"https://jdaymude.github.io/post/solving-the-molecube-by-reduction/","publishdate":"2020-01-06T13:00:00-07:00","relpermalink":"/post/solving-the-molecube-by-reduction/","section":"post","summary":"In this post, I give a reader-friendly primer on \"reduction\", a computer scientist's tool for relating problems to one another. I then solve the Molecube puzzle by reducing it to the Rubik's cube.","tags":["computer-science","mathematics","molecube","puzzle","reduction"],"title":"Solving the Molecube by Reduction","type":"post"},{"authors":["Joshua J. Daymude","Robert Gmyr","Kristian Hinnenthal","Irina Kostitsyna","Christian Scheideler","Andréa W. Richa"],"categories":["research"],"content":"","date":1578096000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1578096000,"objectID":"7e98aaab6de2cb4a2f5d0c7d28763ad5","permalink":"https://jdaymude.github.io/publication/daymude2020-convexhull/","publishdate":"2020-01-04T00:00:00Z","relpermalink":"/publication/daymude2020-convexhull/","section":"publication","summary":"We give an algorithm under the amoebot model for forming the convex hull of an object, enclosing it with the minimum number of particles. Ours is the first distributed algorithm for convex hull formation restricted to local sensing, constant-size memory, and no shared orientation or coordinates.","tags":["programmable-matter","convex-hull","binary-counter","distributed-algorithms","computational-geometry"],"title":"Convex Hull Formation for Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Hidden My Game By Mom is a quick, quirky, and delightful little puzzle starring a boy addicted to his handheld gaming device and his mother\u0026rsquo;s attempts to hide it from him in increasingly bizarre ways. You, the real-life gamer that you are, vicariously strike back against the parental anti-game tyranny you may or may not have actually experienced by interacting with the scene to find this boy\u0026rsquo;s game. The core gameplay revolves around collecting items and using them in clever and silly ways to reveal where the boy\u0026rsquo;s game was hidden, but this comes with a catch: Mom is also hiding in nearly every level, often in more absurd places than the game. Find the game, win the level; find Mom, you\u0026rsquo;re busted.\n This simple hidden object puzzle takes on another level of meaning when moving past the zaniness of the what and moving into the relational why. Hidden My Game By Mom proposes the simple premise of Mom as antagonist, someone to be outsmarted and evaded. But as we progress, it\u0026rsquo;s difficult to leave the boy\u0026rsquo;s motives unquestioned. At one point, we distract the boy\u0026rsquo;s older sister from doing her homework so our boy can get back to his gaming. In another level, the boy digs through literal poop to be reunited with his cherished handheld. This is a caricature of both the boy\u0026rsquo;s love for his game and the lengths his mom would go to stop him, to be sure, but something rings true about his mom\u0026rsquo;s implicit concern that this all might be getting out of hand. And after a surprising and emotional gut punch of a finale, no amount of broken English in the UI can hide Hidden My Game By Mom\u0026rsquo;s core message.\n A parent\u0026rsquo;s love might come out as riding a giraffe\u0026rsquo;s head or feeding an elephant your gaming device, but it\u0026rsquo;s love all the same. We can argue with the methods and the logic, but (at some level) we should try to appreciate that they were doing the best they knew how.\n","date":1576436400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1576436400,"objectID":"3ee8f25f85cab9709993281006e95ca6","permalink":"https://jdaymude.github.io/review/videogame-hidden-my-game-by-mom/","publishdate":"2019-12-15T12:00:00-07:00","relpermalink":"/review/videogame-hidden-my-game-by-mom/","section":"review","summary":"This quirky hidden object puzzle follows a boy addicted to his handheld gaming device and his mother who hides it from him in increasingly bizarre ways. The goal of each level is simple: find the game, win the level; find Mom, you're busted. **6 / 10**.","tags":["puzzle","casual","hidden-object"],"title":"Hidden My Game By Mom!","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"It\u0026rsquo;s difficult to overstate just how much of Tap! Dig! My Museum! is in its title. In this free mobile idler, you play as an aspiring dinosaur archaeologist and newfound owner of a museum in disrepair. By enticing patrons to your museum, you collect the coins they drop as they react to your dinosaurs. In turn, you invest your cash into archaeological digs — where you tap away at sand to uncover hidden bones — and upgrades which make said digs easier. The more dinosaurs you complete, the more people come flooding in to see them, which in turn leads to more money, which in turn leads to more dinosaurs. You get the idea.\n Tap! Dig! My Museum! is a perfect free game in the sense that it never artificially handicaps the player\u0026rsquo;s progress. If you want to keep unearthing dinosaur fossils, nobody\u0026rsquo;s stopping you. Mandatory ads are never longer than 15 seconds, and ads that grant bonuses (like a school bus that brings a swarm of visitors to boost your income) are never longer than 30. As of version 1.3.0 (which added a second floor to the museum and oceanic dinos!), the whole experience only took about 18 hours to complete — ads and plenty of AFK coin collecting included. After being burned by many a \u0026ldquo;free-to-play\u0026rdquo; mobile game, it was nice to actually finish one fair and square.\n There is exactly one interesting wrinkle that shook up gameplay in what was otherwise an enjoyable but repetitive experience. Occasionally, while on a dig, I\u0026rsquo;d uncover a bone fragment that didn’t belong to the dinosaur I was excavating. These remained elusive until finding more across other dig sites, as Tap! Dig! My Museum! began to drop subtle clues about where I could find others. I soon found myself flipping through the in-game dinosaur book with newfound importance, trying to track down mysterious new creatures. In those moments, even if it was in a cartoonish, silly kind of way, I felt like I was solving a pre-historic mystery. And, after all, that’s what this is all about.\n","date":1575399600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1575399600,"objectID":"b394531713bfc82000eac21e117191dc","permalink":"https://jdaymude.github.io/review/videogame-tap-dig-my-museum/","publishdate":"2019-12-03T12:00:00-07:00","relpermalink":"/review/videogame-tap-dig-my-museum/","section":"review","summary":"The gameplay is in the title: tap to dig up dinosaur bones, put them in a museum, use the ticket fees to purchase upgrades, and then get back to digging until you've found all the dinosaurs. The inclusion of some archaeological surprises disrupts what would otherwise be a repetitive but enjoyable free-to-play experience. **7 / 10**.","tags":["idle","casual","puzzle"],"title":"Tap! Dig! My Museum!","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1569070800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1569070800,"objectID":"3240d0b467bef24ad0b6dc116e8ed288","permalink":"https://jdaymude.github.io/event/2019random-separation/","publishdate":"2019-09-21T09:00:00-04:00","relpermalink":"/event/2019random-separation/","section":"event","summary":"In this talk, I present our stochastic algorithm for separation and integration in heterogeneous particle systems. I detail how our analysis techniques from compression break down in the heterogeneous setting and how we use new tools like the *cluster expansion* to address these obstacles.","tags":["programmable-matter","separation","markov-chains","distributed-algorithms","cluster-expansion"],"title":"A Local Stochastic Algorithm for Separation in Heterogeneous Self-Organizing Particle Systems","type":"event"},{"authors":["Sarah Cannon","Joshua J. Daymude","Cem Gökmen","Dana Randall","Andréa W. Richa"],"categories":["research"],"content":"","date":1568937600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1568937600,"objectID":"21433a3f697af3e4faad490739286d49","permalink":"https://jdaymude.github.io/publication/cannon2019-separation/","publishdate":"2019-09-20T00:00:00Z","relpermalink":"/publication/cannon2019-separation/","section":"publication","summary":"We extend the stochastic approach to *heterogeneous* self-organizing particle systems made up of particles of different color classes. We show that by biasing random particle movements based on the number of same-color neighbors, these systems can collectively separate or integrate.","tags":["programmable-matter","separation","markov-chains","distributed-algorithms","cluster-expansion"],"title":"A Local Stochastic Algorithm for Separation in Heterogeneous Self-Organizing Particle Systems","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"I played Arkham Asylum back in summer of 2015, so it somehow seems fitting for this much busier stage of my life that it took me four years to play the sequel. That being said, the gap I\u0026rsquo;ve taken from the Batman: Arkham series may ultimately have been to my benefit, given just how similar Arkham City feels to Arkham Asylum. We\u0026rsquo;re still beating the crap out of every other living character in the game (who all seem inexplicably hostile towards us on sight), we\u0026rsquo;re still uncovering a diabolical plot that features an all-star cast of Batman villains, and we\u0026rsquo;re still tracking down every Riddler secret using every piece of WayneTech we can get our hands on.\nThe thing is, all of it is great. Very few superhero games, especially those being made back in the early 2010s, can hold a candle to the experience that Arkham City provides. From gliding and grappling through the city to using detective mode to solve crimes, every moment feels like an authentic, exhilarating experience of donning the cape and cowl of the Dark Knight. Catwoman, Robin, and Nightwing are also playable characters for smaller segments, each with their own exciting gadgets and play styles. A huge amount of the game\u0026rsquo;s success can be credited to the immersive open-world of Arkham City, greatly improving over the labyrinth Metroidvania-like level design of Arkham Asylum. Adding a mix of outdoor and indoor locations to the game adds further opportunities for the mechanics and side missions to enrich the overall experience.\nBut this brings me to a point of Arkham City I was surprised by, and one that I would have only picked up on now, in 2019. Thanks to the open-world design, we get a lot of radio chatter from various inmates and characters to make the solo experience feel more alive. Most of what they say is fine but forgettable, like \u0026ldquo;I wonder what\u0026rsquo;s on TV right now,\u0026rdquo; or self-dating to an era where Facebook was still a novelty: \u0026ldquo;How am I supposed to update my status? \u0026hellip;Oh yeah, I\u0026rsquo;m still stuck here in this stinking prison.\u0026rdquo; But a lot of it hints at something much more sinister, not originating from the inmates themselves, but from their experience.\nYou see, the plot of the game is that Prof. Hugo Strange gets Gotham City to agree to a pretty bonkers plan wherein they wall off a huge part of the city, throw all the inmates and supervillains from Arkham Asylum inside, and seal it shut. Strange likes this because he gets to \u0026ldquo;study\u0026rdquo; the criminally insane (for the good of science, I\u0026rsquo;m sure), and because the prison is a perfect way of making sure anyone who knows the truth of his nefarious purposes (like Bruce Wayne) are never heard from again. But in an age where we\u0026rsquo;re talking a lot more about racial discrimination, police brutality, and other failures of our criminal justice system, you start to wonder why in the world Batman feels the need to be inside this prison, beating the pulp out of everyone he sees. A decent number of inmates will yell \u0026ldquo;What\u0026rsquo;s Batman doing here?\u0026rdquo; when you start a fight. Others get picked up by your police scanner: \u0026ldquo;Why\u0026rsquo;s Batman in here anyway, aren\u0026rsquo;t we already locked up?\u0026rdquo;\nI get that a lot of these inmates are bad people, especially the more ruthless ones who work closely with the big bads (Penguin, Two-Face, Joker, etc.). But my guess is that a lot of the inmates joined up with some villain\u0026rsquo;s faction just so they had food to eat, or so they wouldn\u0026rsquo;t get killed in the streets. And while I know Batman will never be compassionate, I wonder if he couldn\u0026rsquo;t be just a bit more conscientious. Otherwise, I worry that Joker\u0026rsquo;s right when he says Batman belongs inside with the rest of them.\nBugs The game would occasionally crash with some pretty unreadable error messages, but was otherwise flawless.\n","date":1566068400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1566068400,"objectID":"fb1df56cb8aa269ae16efd1c74ea76db","permalink":"https://jdaymude.github.io/review/videogame-batman-arkham-city/","publishdate":"2019-08-17T12:00:00-07:00","relpermalink":"/review/videogame-batman-arkham-city/","section":"review","summary":"This stellar sequel to 2009's *Batman: Arkham Asylum* remains a benchmark against which other superhero games have to compare themselves. From gliding and grappling through the city to using detective mode to solve crimes, every moment feels like an authentic, exhilarating experience of donning the cape and cowl of the Dark Knight. **9 / 10**.","tags":["action","adventure","open-world","superhero","third-person"],"title":"Batman: Arkham City","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["creative"],"content":"Mathematicians really care about correctness. We believe unspoken assumptions are dangerous. We think vague language is confusing, and saying more or less than we mean is grounds for misunderstanding. We want terms to be clearly defined, and for points to follow logically, like links in an unbreakable chain of truth. But sometimes people say things that are completely reasonable and yet we still feel the need to set them straight:\n This is my first contribution to the world of webcomics, a medium I\u0026rsquo;ve long admired for being able to deliver witty, weird reflections on life in simple packages. Giving credit where it\u0026rsquo;s due, this \u0026ldquo;joke\u0026rdquo; is adapted from The Curious Case of the Dog in the Night-Time by Mark Haddon and the art style takes after poorlydrawnlines by Reza Farazmand. In living out generous making, this comic is available as a high resolution PNG or PDF for you to use as you\u0026rsquo;d like. (Just keep my authorship in the corner intact, please!)\nAnd hey, to the economists out there: if you\u0026rsquo;ve got any good roasts of mathematicians, I\u0026rsquo;m all ears.\n","date":1564503300,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1564503300,"objectID":"8f2171832576ff1fe35ffeac2d3935fb","permalink":"https://jdaymude.github.io/post/the-three-academics/","publishdate":"2019-07-30T09:15:00-07:00","relpermalink":"/post/the-three-academics/","section":"post","summary":"A webcomic about mathematicians, correctness, and cows.","tags":["academia","mathematics","webcomic"],"title":"The Three Academics: A Joke","type":"post"},{"authors":["John Calvin Alumbaugh","Joshua J. Daymude","Erik D. Demaine","Matthew J. Patitz","Andréa W. Richa"],"categories":["research"],"content":"","date":1563926400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1563926400,"objectID":"4f27e10722e6b57662c21136bb6b2b1c","permalink":"https://jdaymude.github.io/publication/alumbaugh2019-tilesimulation/","publishdate":"2019-07-24T00:00:00Z","relpermalink":"/publication/alumbaugh2019-tilesimulation/","section":"publication","summary":"We bridge the gap between self-organizing particle systems and tile self-assembly systems by providing a simulation of the *amoebot model* within the *tile automata model*.","tags":["programmable-matter","self-assembly","tile-automata","amoebot-model","simulation"],"title":"Simulation of Programmable Matter Systems Using Active Tile-Based Self-Assembly","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"This is a story about the weirdness of the world as understood by the mind of Christopher John Francis Boone, a boy with autism who lives with his father in a small town in the UK. Christopher hates crowds of people, vague questions, figurative language, being touched, and the color yellow (seeing four yellow cars in a row on his way to school makes it a Black Day, on which he doesn\u0026rsquo;t eat anything). But he loves all things scientific, mathematical, and factual. When he gets lost, he physically performs the Pledge maze-solving algorithm. When he gets stressed, he solves quadratic equations in his head. And his best approximation for life is the prime numbers:\n Prime numbers are what is left when you have taken all the patterns away. I think prime numbers are like life. They are very logical but you could never work out the rules, even if you spent all your time thinking about them.\n— The Curious Incident of the Dog in the Night-Time, page 12.\n The book itself is one of Christopher\u0026rsquo;s school exercises. When he finds a neighbor\u0026rsquo;s dog stabbed through with a pitchfork, he takes it upon himself to solve the murder mystery. Siobahn — his teacher and likely the only person in his life that fully understands autism — encourages him to document it all like his favorite Sherlock Holmes novels. But just as often as it includes details about the case, it also includes Christopher\u0026rsquo;s meandering thoughts: his interactions with his father, his hopes for the future, and his bewilderment with the world.\nThis is where the clever beauty of this novel shines through: in some ways, we all are bewildered with our world. People don\u0026rsquo;t say what they mean. Solid, committed relationships break. We fill the world with noise instead of thoughtful presence. Through the eyes of Christopher, we can learn empathy for those who simply can\u0026rsquo;t cope with these strange nuances as well as we do (or don\u0026rsquo;t). Through the thoughts of a boy who thinks of everyone as different from himself, we\u0026rsquo;re reminded just how many common threads bind us all together. And through his quips — which he would never call jokes because he claims to not know any or understand them — we can find humor in truth.\n Mr. Jeavons asked me whether this made me feel safe, having things always in a nice order, and I said it did.\nThen he asked if I didn\u0026rsquo;t like things changing. And I said I wouldn\u0026rsquo;t mind things changing if I became an astronaut, for example, which is one of the biggest changes you can imagine, apart from becoming a girl or dying.\n— The Curious Incident of the Dog in the Night-Time, page 25.\n ","date":1563044400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1563044400,"objectID":"a62e2d868cf9d6702558e5c1f15546e4","permalink":"https://jdaymude.github.io/review/book-the-curious-incident-of-the-dog-in-the-nighttime/","publishdate":"2019-07-13T12:00:00-07:00","relpermalink":"/review/book-the-curious-incident-of-the-dog-in-the-nighttime/","section":"review","summary":"This is a story about the weirdness of the world as understood by Christopher John Francis Boone, a boy with autism who lives with his father in a small town in the UK. Christopher and his idiosyncrasies are instantly lovable. Through the eyes of a boy who thinks of everyone as different from himself, we're reminded just how many common threads bind us all together. **7 / 10**.","tags":["literary-fiction","mystery","autism"],"title":"The Curious Incident of the Dog in the Night-Time","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"This book is a celebration of the Creator God who created all that is made and invites us as humans into a continual process of co-creation. It is a purposeful urge to reorient our making away from idols of productivity or self-promotion and towards others and the world. It is a gentle reminder that God has delighted in our existence since before we knew him, and continues to delight in what we bring, albeit imperfect, broken, and lacking. We do not earn our keep; it is lavished on us. So we, in turn, pour ourselves out for others through our making, trusting the perfect Creator to use our humble gifts in magnificent ways.\n Jesus invites us into a generous creating—a creating that does not fear, that is not self-conscious, and that is generative in purpose\u0026hellip; ultimately our art should be generous. A gift. A thing given over and over and over because we are called to be love to the whole of the Earth.\n— All That Is Made, page 22.\n All That Is Made is a guiding hand in reimagining creativity as an aspect of all humans instead of an elite few. We are all made in the image of God, so we all carry the desire to create, to make, and to build. This frees us from constructs of who is creative and who is not, and the pressures that come with each (the pressure to produce and the feeling of inferiority, respectively). And in that freedom, All That Is Made argues that we should all take part together in boldly reimagining the world as it should be, on earth as it is in heaven, with all the elusive stepping stones between here and there.\n It is our artists, our poets, and our entrepreneurs who remind us that how it is right now, is not how it always will be. It is creatives that remind us that the arc of the universe bends towards God\u0026rsquo;s justice. It is creatives that both give voice to our suffering and imagine a world in which it is not wasted.\n— All That Is Made, page 15.\n If nothing else, All That Is Made did for me what it advocates for all creativity to do: to bring healing, restoration, and hope. As a mathematician and computer scientist, I\u0026rsquo;ve endured a lot of boxes being put around me in how formulaic or robotic my thinking and work must be. Against the backdrop of tech culture, passion projects feel worthless without a monetization strategy. I\u0026rsquo;ve been afraid that I don\u0026rsquo;t know what I need to know to make an impact.\nBut I know that this work is creative. I know that it is generative in purpose. And I want my making to be a gift to those around me: I want to give it all away. Open-source, easy to use, and out in the world to be used however God and others might use it. This has always been true in my heart of hearts. To see my desires spelled out on beautiful pages was both relief and clarity. Reflecting on it invokes something deep and emotional in my soul.\n Creatives who follow the way of Jesus are called to give away every last trade secret, every lesson learned, every skill set acquired, and lots and lots of art.\nWe are blessed to be a blessing.\nWe are creative, not for ourselves, but for the flourishing of humanity. We start companies, not for personal gain but to reimagine the marketplace as a place of generosity. We make things so that our communities are filled with the creative energy of God, allowing the next generation to join in the work of ushering in shalom.\n— All That Is Made, page 29.\n Hallelujah. Amen. May it be so.\nNotes Geoff Gentry gifted this book to Annie and I, hoping that it would be something useful to reflect on. He was right.\n","date":1562698800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1562698800,"objectID":"1ffe85ab8df0c9522f647102d40c271f","permalink":"https://jdaymude.github.io/review/book-all-that-is-made/","publishdate":"2019-07-09T12:00:00-07:00","relpermalink":"/review/book-all-that-is-made/","section":"review","summary":"This book is a celebration of the Creator God who created all that is made and invites us into a continual process of co-creation. It is an urge to reorient our making away from productivity or self-promotion and towards others and the world. It is a gentle reminder that God has delighted in our existence since before we knew him, and continues to delight in what we bring, albeit imperfect, broken, and lacking. **8 / 10**.","tags":["christianity","creativity","art"],"title":"All That Is Made","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["software"],"content":"Health insurance is confusing. Last year, after Annie and I got married and she started a new job, she came home from orientation day with the book. The book of health insurance plans, complete with overcomplicated tables of costs and percentages, interspersed with pictures of smiling people. I assume they\u0026rsquo;re smiling either to make me — the daunted reader — feel assured, or because they know they\u0026rsquo;d be screwed in the U.S. without health insurance. But that\u0026rsquo;s another issue.\nChoices, Choices The problem with displaying a health insurance plan using many tables is that it\u0026rsquo;s very difficult to make comparisons between plans. One plan might be more costly than another in certain categories but not in others. One might have a low deductible while the other has a high co-pay. Yet a third plan might have a very middling premium and comes with a Flexible Savings Account. Even if I know what all these terms mean and how they interact with one another, it\u0026rsquo;s still hard to discern which would be best for our family\u0026rsquo;s specific health needs. And, to top it all off, I can\u0026rsquo;t know if I\u0026rsquo;m getting a good deal since insurance rates are negotiated between insurance companies and employers, and there\u0026rsquo;s very little info available online to compare with.\nThis, I think, is where uncertainty sets in and some word-of-mouth advice can end up replacing mathematical reasoning for some people. (Or, for those who grew up in the 2000s, maybe you have a vaguely negative feeling about HMOs because of Melman from Madagascar.) But Annie and I wanted grounded answers, so we went to our whiteboard, scribbled a ton of math and graphs, argued about said scribbles, eventually came to realize we agreed about everything we were arguing over (classic), and got to work.\n Cutting Through the Jargon A big part of this for me was simply understanding what all these health insurance words meant. Here\u0026rsquo;s what I learned (feel free to skip if you know this already).\n A premium is a cost you pay every month just for being on insurance. Think of it like the cost of a Netflix subscription, but more expensive and way less entertaining. A deductible is a set amount of medical costs that you are 100% responsible for. Insurance is only going to kick in and make things cheaper after you \u0026ldquo;meet\u0026rdquo; your deductible. A copay (co-payment) is the percentage of medical costs you\u0026rsquo;re responsible for after your deductible is met. An out-of-pocket maximum is the maximum amount of money you will be responsible to pay in a year. Let\u0026rsquo;s work this as an example. Say I have Plan A, shown below.\n premium deductible copay out-of-pocket maximum Plan A $200 $500 20% $4,000 Say my plan starts in January, and the first three months go by without any doctor appointments, prescription refills, etc. By the time March has ended, I\u0026rsquo;ve paid $\\$200 \\times 3 = \\$600$ in premiums. Then, in April, I get an infection and need to see my primary care physician. The doctor is charging me $\\$75$ for the visit, and the medication they prescribed is another $\\$75$. Because I haven\u0026rsquo;t met my deductible yet (premiums don\u0026rsquo;t count!), I have to pay the full $\\$150$. I\u0026rsquo;ll also, of course, have to pay my April premium of $\\$200$. (This whole healthcare thing is expensive, isn\u0026rsquo;t it?) Time goes on, and by October my family has paid $\\$500$ out-of-pocket. But crisis strikes: I get in a car accident and break several bones. I\u0026rsquo;m rushed to the hospital via ambulance, and have to spend several days in the hospital getting stabilized and getting casts set. Our bill comes out to be $\\$25000$. But because our copay has now kicked in, we\u0026rsquo;re only responsible for $20\\% \\times \\$25000 = \\$5000$, and we only have to pay $\\$3500$ of the bill before we hit our $\\$4000$ out-of-pocket maximum.\nWhew.\nA Piecewise Function I made many simplifications to the healthcare system in my example above, but a year on health insurance can roughly be split into three stages: paying 100% of costs until meeting the deductible, paying only the copay percentage of costs after the deductible, and paying 0% of costs after hitting the out-of-pocket maximum. If we were to plot this with the x-axis being the total medical costs without insurance and the y-axis being the out-of-pocket costs with insurance, we\u0026rsquo;d end up with something that looks like:\n Once Annie and I saw this, we realized we could plot all of our plan options onto one graph and immediately be able to see what would cost us the most depending on the medical costs we incurred. We only needed to add in the annual premium costs to see a decent approximation of everything we\u0026rsquo;d spend on health insurance in a year with each plan.\nBuilding SureChoice I quickly threw together some MATLAB code to compute and plot the piecewise cost function for each of our possible plans. What we found cut straight through the sales language in our plans booklet and made everything quite concrete: the best plan for us had everything to do with the medical costs we would have. Here\u0026rsquo;s an example plot:\n Every line in the plot shows how expensive that plan would be if we had the total annual medical costs shown on the x-axis. The HMO plan (blue), for example, is almost always the most expensive plan (except for the $\\$3000$–$\\$9000$ range, where it\u0026rsquo;s better than the HDHP plan). If we knew we were going to have over $\\$30000$ in costs, the HDHP plan is the best. If we were going to have under $\\$5000$ in costs, everything but the HMO plan is roughly the same. The EPO plan basically wins out in all other cost ranges. All in all, this kind of visualization helped us to make the most cost-effective choice for our expected medical expenses.\nI\u0026rsquo;ve recently cleaned up my code, ported it to Python, and put it up on GitHub for anyone to use (\u0026hellip;assuming you know how to run Python code). Hopefully it can help you like it helped us, and if you have the skills to turn this into something easier to use (a web app, etc.) go for it! We might not be able to change these confusing systems, but we can at least make them easier to navigate.\n","date":1561872060,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1561872060,"objectID":"836cc578ebe25355389c791010362225","permalink":"https://jdaymude.github.io/post/surechoice/","publishdate":"2019-06-29T22:21:00-07:00","relpermalink":"/post/surechoice/","section":"post","summary":"Health insurance is confusing. In this post, I introduce a mathematical method and code for comparing insurance plans in a simple, visually compelling way.","tags":["health-insurance","python"],"title":"SureChoice: Making Informed Insurance Decisions","type":"post"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1554321600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1554321600,"objectID":"2643ac4cd9f6a8220034914eda8751b6","permalink":"https://jdaymude.github.io/event/2019discretemath-stochastic/","publishdate":"2019-04-03T13:00:00-07:00","relpermalink":"/event/2019discretemath-stochastic/","section":"event","summary":"In this talk, I give an overview of the stochastic approach to self-organizing particle systems, including Markov chain design and analysis for the compression, shortcut bridging, and separation problems.","tags":["programmable-matter","compression","bridging","separation","bio-inspired","markov-chains","distributed-algorithms"],"title":"Stochastic Algorithms for Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["tutorial"],"content":"Our team over at the SOPS Lab has been writing a lot of code lately as part of an ongoing effort to make our AmoebotSim simulator publicly available through an open source release. There\u0026rsquo;s a lot of diversity in coding/software engineering experience among our team members — from finishing a first course in C++ to completing several internships in big tech — so I\u0026rsquo;ve been spending some time thinking about how to make on-boarding easier, forming new students into conceptual thinkers and proficient programmers as quickly as possible. This tutorial on the basics of Git is meant to help with that.\nNecessary Disclaimers We have to get two things out of the way up front. First, this is not really the \u0026ldquo;accessible to anyone, technical or not\u0026rdquo; kind of post that I usually aim for. While it is meant to be simpler than the average Git tutorial, it\u0026rsquo;s still going to talk about software skills that are, by nature, technical. Speaking of other Git tutorials: yes, I do know how many Git tutorials already exist. Many of them are ones I\u0026rsquo;ve learned from and am inspired by. Some are far more complete, more specific, more polished, and even more craftsy than what I intend to do here. The point of this tutorial is to distill all that wonderful material into something that gets students (and other newcomers) acquainted with basic Git concepts and comfortable with a great Git client all in one sitting.\nAs a last bit of housekeeping, I\u0026rsquo;d like to credit Rachel M. Carmena, whose methodology I\u0026rsquo;m following quite closely.\nGit\u0026rsquo;s View of the World Git sees a software project loosely like this:\n Big picture: there\u0026rsquo;s the remote server that houses the full software project and all the changes that have been made to it so far, and then there\u0026rsquo;s your computer where you implement new features and code changes. Now, Git is usually used when writing software collaboratively, so while the above picture is all that you have to worry about, the real setting is more like this:\n Hold Up, What\u0026rsquo;s Git? Git is just a piece of software that\u0026rsquo;s openly available for anyone to use. (Aside: it\u0026rsquo;s not a company or something that\u0026rsquo;s sold commercially, though this is often confusing because of companies/services like GitHub and GitLab). The problem Git is trying to solve, informally, is to support many people editing the same set of files concurrently while causing as few conflicts and headaches as possible. You might recognize that Google Docs and Dropbox try to solve a similar problem, but with a different strategy that makes them poorly suited for software development. Imagine for a moment that you were trying to use Google Docs for writing real code. Say you\u0026rsquo;ve been up all night working on a cool new feature, tracking down all its subtle and frustrating bugs, and now you want to compile and test it one last time to make sure it\u0026rsquo;s all good to go.\nBut right as you go to compile, your teammate gets in there and starts writing some other code, which naturally isn\u0026rsquo;t complete yet and doesn\u0026rsquo;t build! What do you do? Do you hit them up on Slack and ask them to stop coding while you test your feature? (If so, that essentially means only one person can be working at a time). Do you just keep trying to compile over and over until you get lucky and it builds? (If problems arise in testing, you won\u0026rsquo;t be sure if it\u0026rsquo;s your code that\u0026rsquo;s causing issues or someone else\u0026rsquo;s). This is nightmarish and no one does this. (I hope).\nGit is an example of distributed version control software, a type of software meant to make these kinds of situations much easier to handle by giving each user more control over their own version of the files and when to incorporate the changes made by other people. (For the record, there are other choices for distributed version control, but Git is by far the most popular).\nTools of the Trade In Git, the remote repository contains the current version of the shared code. Remote repositories can be set up on any server (or even your own workstation), but most people prefer to use a service like GitHub, Bitbucket, or GitLab to host their projects for them, which makes life easier. Think of it like this: GitHub is to Git repositories as WordPress is to websites. You can certainly host your own website, but using a service like WordPress saves you the trouble of maintaining a web server yourself. Our team uses Bitbucket for our AmoebotSim project, so that\u0026rsquo;s what\u0026rsquo;ll be in the screenshots.\nAn additional way to simplify using Git is to get a nice Git client like GitKraken or GitHub Desktop instead of interfacing with Git on the command line (which many hardcore users will tell you is the only way to really learn Git). Using the website analogy again, Git clients are to Git repositories like themes and rich-text editors are to websites. Could you put a stellar website together writing your own HTML, CSS, and JavaScript? Sure. Would you learn a lot more about how websites work doing it this way? Of course. But it takes a lot longer, and there\u0026rsquo;s much more room to make mistakes. In general, Git clients make understanding your repository a breeze with nice graphical representations and controls. I\u0026rsquo;ll be using GitKraken here, and I highly recommend you do too!\nCloning a Repository Getting a copy of a repository from a remote server onto your machine is called cloning a repository.\n Cloning makes a copy of the remote repository to your local repository. This not only includes the most recent version of the files but also the entire version history (list of changes) for every file, who made those changes, when those changes were made, and all the different branches of those files that your collaborators may be working on (we\u0026rsquo;ll come back to branching in a future post). The clone operation also puts the most recent version of the files in your working directory, where you can open them up in your file system and start making changes.\nThis is pretty easy to do with GitKraken:\n And it\u0026rsquo;s even easier if you\u0026rsquo;ve already signed into your hosting platform (e.g., Bitbucket) in GitKraken:\n Making and Submitting Changes Now that the code is in my working directory, I can make my edits. From Git\u0026rsquo;s perspective, changes can either be tracked, meaning Git knows about them, or untracked, meaning the changes are in new files that haven\u0026rsquo;t been added to Git yet. Either way, I can add all the changes I\u0026rsquo;ve made to Git\u0026rsquo;s staging area in a process called staging:\n To illustrate this, I\u0026rsquo;ll be adding license and copyright information to AmoebotSim (a very important part of going open source). I\u0026rsquo;ll be making these edits in three parts: (1) adding a LICENSE file, (2) adding a copyright notice to our main.cpp file, and (3) adding an abbreviated copyright notice to the other source files. Adding the LICENSE file will initially be an untracked change (it\u0026rsquo;s a new file), while the other changes that edit existing files will be tracked.\n Now that the changes are staged, we can commit them to our local repository. A commit is essentially a batch of changes with a description known as a commit message. In general, a commit message should clearly and concisely describe the changes its commit contains (see this post for best practices). Once that message is done, we can commit, adding our changes to the version history.\n This is, per usual, easy to do and visualize in GitKraken:\n But committing only puts our changes in the local repository (shown by the little computer icon in GitKraken), not the remote repository where everyone else can see them (shown by the profile picture of the repository owner). Updating the remote repository with new commits from our local repository is called pushing.\n Once commits have been pushed, they\u0026rsquo;re out there for other repository members to see and use. Be sure that your code builds and is bug-free before you commit and push; otherwise, you\u0026rsquo;ll break everyone else\u0026rsquo;s builds and get a lot of angry messages asking you to fix your issues quickly! (There are ways to mitigate these kinds of problems, like branch/fork-based workflows with approval processes, but I\u0026rsquo;m saving those more advanced topics for a future post).\nGetting Other People\u0026rsquo;s Changes Say that you were offline for a couple hours (or days…) and are just returning to your project. Your teammates may have committed and pushed code while you were away, and you want to get all their changes. Git gives you two ways to do this: fetch and pull.\nFetching retrieves all the new updates (commits, files, etc.) from the remote repository and copies them to your local repository. These new updates exist separately from the rest of your work, allowing you to look into them independently from any changes you\u0026rsquo;ve made locally. If you want your team\u0026rsquo;s updates to be integrated with your local changes, you\u0026rsquo;ll need to merge them in.\n This can potentially cause merge conflicts if both you and your teammates' commits changed the same lines of code. (Although, to be honest, Git can get confused and think all kinds of things are \u0026ldquo;conflicts\u0026rdquo; even when they\u0026rsquo;re not, so watch out for that). Thankfully, GitKraken has a slick tool for helping you fix your merge conflicts (this was, by far, the #1 reason our team recently switched to GitKraken from Sourcetree):\n Pulling simply combines fetching and merging into one step. It retrieves all the new updates from the remote repository and automatically tries to merge them into your local repository, possibly triggering merge conflicts for you to resolve along the way.\n In GitKraken, both fetching and pulling can be performed using the top toolbar. The following example shows a pull, though you can see for a brief moment how it first fetches the new commit before merging it in.\n Git Out There I\u0026rsquo;ve covered the rudimentary operations of Git and how to do them in GitKraken, but there\u0026rsquo;s much more to learn! In a future post I hope to cover branch/fork-based workflows, pull requests, and rebasing, all of which can play a role in using Git for larger projects.\nAs always, I welcome your feedback and questions. Happy coding!\n","date":1548186000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1548186000,"objectID":"ae456160563c16b6a73956c6748f2cdd","permalink":"https://jdaymude.github.io/post/git-going-with-gitkraken/","publishdate":"2019-01-22T12:40:00-07:00","relpermalink":"/post/git-going-with-gitkraken/","section":"post","summary":"This post is a beginner's guide to Git, focusing on a solid conceptual framework for understanding version control and a hands-on experience using a visual Git client. I cover Git's purpose and infrastructure as well as cloning, committing, pushing, fetching, merging, and pulling.","tags":["git","gitkraken","programming"],"title":"Git Going With GitKraken","type":"post"},{"authors":["Joshua J. Daymude","Kristian Hinnenthal","Andréa W. Richa","Christian Scheideler"],"categories":["research"],"content":"","date":1547337600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1547337600,"objectID":"8ef7ac6e4e361e1df4208e85cd9ce71d","permalink":"https://jdaymude.github.io/publication/daymude2019-computingparticles/","publishdate":"2019-01-13T00:00:00Z","relpermalink":"/publication/daymude2019-computingparticles/","section":"publication","summary":"In this book chapter, we recap the first five years of work on the amoebot model and its variant, hybrid programmable matter. This includes distributed algorithms for shape formation and recognition, object coating, compression, shortcut bridging, separation, and some underlying primitives.","tags":["programmable-matter","leader-election","binary-counter","shape-formation","shape-recognition","coating","compression","bridging","separation","markov-chains","distributed-algorithms"],"title":"Computing by Programmable Particles","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"The Phantom Tollbooth is a fable in every chapter, clever wit in every paragraph, and careful thought in every sentence. It is both a treatise on critical thinking and a tender story of a young boy\u0026rsquo;s adventure. It is just as much an epic struggle between Wisdom and Ignorance as it is a playful comedy where the first character to cry is a watchdog named Tock lamenting the fact that he goes ticktickticktick while his brother Tick goes tocktocktocktock. Perhaps most importantly, its excellence is a testament to the fruits of curious wonder and deep wisdom, two values that its fantastical characters try very hard to get Milo — the protagonist — to pursue.\nEvery word is an absolute joy to read. Norton Juster achieves the kind of simplicity that comes at the cost of both knowing what exactly one wants to write and cutting away all superfluous material that does not achieve that goal. The entire novel is written in everyday prose fitting for a bedtime story, and yet contains layers of subtlety that should give the reading adult pause. Juster masterfully mixes serious lessons (that must not be obvious even to many adults, seeing how our world is) with hysterical moments of relief, all in a stream of whimsical adventure. Take, for example, the following scene:\n Except for these, and the big brass cannon being pulled along behind, they all looked very much like the residents of any other small valley to which you\u0026rsquo;ve never been.\n— The Phantom Tollbooth, page 146.\n Paradox, absurdity, and humor, all wrapped into such a simple little description. Or take, for example, an unabashed jab Juster takes at the Humbug:\n After demonstrating that there was nothing up his sleeves, in his hat, or behind his back, [the Mathemagician] wrote quickly:\n4 + 9 – 2 x 16 + 1 ÷ 3 x 6 – 67 + 8 x 2 – 3 + 26 – 1 ÷ 34 + 3 ÷ 7 + 2 – 5 =\nThen he looked up expectantly. “Seventeen!” The Humbug shouted, who always managed to be the first with the wrong answer.\n— The Phantom Tollbooth, page 188.\n The pages of this book are riddled with such perfect moments as these.\nI\u0026rsquo;m sure that many compelling essays have been (or could be) written on the many social tendencies The Phantom Tollbooth chases after with the sharpest wit — getting lost in trivial tasks, becoming an arrogant and condescending specialist, or being too afraid to have your own thoughts, for example — but it suffices to say that The Phantom Tollbooth gives a looking glass into how our own world has banished its Rhyme and Reason. It is relevant even today, nearly 60 years after its original publication. But unlike the dystopias of its time, The Phantom Tollbooth is permeated with hope. And with what better weapon can one burn back the darkness?\n “And remember also,” added the Princess of Sweet Rhyme, “that many places you would like to see are just off the map and many things you want to know are just out of sight or a little beyond your reach. But someday you\u0026rsquo;ll reach them all, for what you learn today, for no reason at all, will help you discover all the wonderful secrets of tomorrow.”\n— The Phantom Tollbooth, page 234.\n ","date":1546628400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546628400,"objectID":"32bdc7f30bfb693fe0d325da3e73bec7","permalink":"https://jdaymude.github.io/review/book-the-phantom-tollbooth/","publishdate":"2019-01-04T12:00:00-07:00","relpermalink":"/review/book-the-phantom-tollbooth/","section":"review","summary":"_The Phantom Tollbooth_ is a fable in every chapter, clever wit in every paragraph, and careful thought in every sentence. It is both a treatise on critical thinking and a tender story of a young boy's adventure. It is just as much an epic struggle between Wisdom and Ignorance as it is a playful comedy. Its excellence is a testament to the fruits of curious wonder and deep wisdom. **10 / 10**.","tags":["adventure","fantasy","fable"],"title":"The Phantom Tollbooth","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"After reading a particularly deep and persuasive Game Informer opinion piece, I decided to download MARVEL Strike Force as a way to take occasional breaks from the stress of planning our wedding. In a polished experience centering on collecting and upgrading MARVEL characters, I soon found myself assembling five-character teams of heroes, villains, and minions whose compositions rivalled even the wildest Cinematic Universe crossovers to date. My early game mashup team of Spiderman, Elektra, Crossbones, Luke Cage, and an unnamed S.H.E.I.L.D. Medic was soon taking on the likes of Ultron, Hydra, and other players' amalgamations in an effort to — as always — save the world.\nThe campaign offers a barebones and comic-book-absurd explanation of what\u0026rsquo;s going on: a new villain named Ultimus (who was invented for this game) has a Conversion Device that he uses to corrupt heroes and villains alike to join his cause. Ultimus conveniently also has the ability to open interdimensional portals, so he makes a habit of converting whole armies of Avengers, Guardians, Hydra, Kree, etc. in his ongoing conquest of the multiverse. Naturally, our dimension — and specifically, our Earth — contains Nexus portals that guard the way to all other dimensions, so Ultimus sees our dimension as his prize. Conveniently, our dimension\u0026rsquo;s Nick Fury secretly started a S.H.E.I.L.D. division called S.T.R.I.K.E. to monitor and defend against inter-dimensional threats, hence the whole \u0026ldquo;Strike Force\u0026rdquo; thing. So, in a classic \u0026ldquo;the enemy of my enemy is my friend\u0026rdquo; narrative, our dimension\u0026rsquo;s heroes and villains team up under the Strike Commander (that\u0026rsquo;s you) to fight Ultimus and — cue the heroic fanfare — save the multiverse!\n I\u0026rsquo;m just going to get this out of the way now: MARVEL Strike Force\u0026rsquo;s main story (and many side- and event-stories) are terrible. The writers can\u0026rsquo;t seem to decide if they\u0026rsquo;re self-aware of how silly the whole setup is or if they take it very seriously, which leads to almost all the characters delivering similar, melodramatic lines. Even characters who were created to leverage our cracking suspension of disbelief (like Deadpool and Star Lord) fall flat. That being said, MARVEL Strike Force is primarily made up of its many well-executed variations of the same core, turn-based strategy gameplay, and the forgettable story is really just there to tie everything together.\nWith that negative aside, let\u0026rsquo;s talk about a bunch of things MARVEL Strike Force does really well. First, as hinted at before, it has a lot of different game modes. And somehow, almost all of them feel enjoyable and distinct despite not being terribly different from one another. For example, the Campaign mode tasks the player with using different subsets of characters (only heroes, only villains, only characters from space, etc.) to play though a sequence of levels. In the Arena, players fight for better ladder rank by pitting their best five-character team against those of higher-ranked players. In Blitz, players use their entire collection of characters to win as many battles as they can in the period of a couple days. In Raids, players work with their alliance to collectively complete a map of difficult battles.\n You might be thinking \u0026ldquo;Okay, we get it, every mode is basically a different framework for battles. Doesn\u0026rsquo;t that get old? Why play all the different modes?\u0026rdquo; The best answer I can give is that MARVEL Strike Force\u0026rsquo;s many modes enable and encourage progression in a way that is exceptionally better than many of its free-to-play peers. In order to explain how it does this, we need to understand how characters are upgraded. First, a character has to be unlocked by collecting some number of that character\u0026rsquo;s \u0026ldquo;shards.\u0026rdquo; Some shards can be obtained through completing/replaying Campaign levels, while others come as rewards from orb drops (MARVEL Strike Force\u0026rsquo;s equivalent of a loot box). Once a character\u0026rsquo;s been unlocked, they can be upgraded in five ways:\n Stars: Gaining additional shards periodically increases a character\u0026rsquo;s star level (up to star level 7), which increases the character\u0026rsquo;s power. Red Stars: Random drops that dramatically increase character power (and the one and only pay-to-win feature of this game). Level: Players can spend gold and \u0026ldquo;training modules\u0026rdquo; to increase the character\u0026rsquo;s level, which maxes out at the player\u0026rsquo;s level (which is increased by gaining XP). Abilities: Each character has up to three active abilities and one passive to use in battles, and each ability can be upgraded using \u0026ldquo;ability materials\u0026rdquo;. Gear: A character\u0026rsquo;s stats (health, damage, armor, etc.) can be increased by upgrading their gear, which can be obtained from Campaign levels. This may all feel overly complicated, but the reality is that these convoluted systems encourage players to engage in everything the game has to offer, all while rewarding that engagement with tangible and meaningful upgrades to their characters. Being a free-to-play game, this approach helps players remain relatively competitive without having to empty their wallets. (There\u0026rsquo;s one necessary caveat to this point: for those who do want to shell out some cash, the in-app purchases in MARVEL Strike Force are stupidly expensive).\nThe second free-to-play sin that MARVEL Strike Force neatly avoids is unnecessary grinding (especially for free players to progress). Instead of making you play Campaign level over and over again, for example, beating a level without any of your characters dying unlocks an \u0026ldquo;auto-win\u0026rdquo; of that level, where you can simply spend Campaign energy and immediately get the rewards (shards, gold, gear, etc.). With a tap of a button, I can auto-win a level ten times, a task that would usually take at least 10 minutes. Other small details like this one really add up in a way that makes me feel good about playing (instead of worrying that I\u0026rsquo;m falling prey to time-sucking strategies the developer may be employing).\nThe meta-game has pretty severe balance issues (at the time of writing, Defenders and S.H.E.I.L.D. teams have been essentially unbeatable at the highest levels of competition for months) and the main UI is unnecessarily cumbersome, but if you\u0026rsquo;re looking to play with a wide cut of MARVEL\u0026rsquo;s roster for free in a pretty friendly community, I\u0026rsquo;d be hard pressed to find a better recommendation than MARVEL Strike Force.\nNotes As of writing this review, I\u0026rsquo;ve been playing MARVEL Strike Force for 6.5 months, have been in two alliances (other than the default one), have reached the maximum level (70), and am easily completing Ultimus V raids. I have not completed any of The Dark Dimension. Alliance War was added after this was written.\nBugs Occasionally, after certain updates, battles can hang indefinitely, where either the AI never takes their turn or the player is never presented with their actions. This is usually fixable by force-quitting the game and restarting.\n","date":1546455600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1546455600,"objectID":"11dbf46cdfebcedee6f4aaa0dccbaebc","permalink":"https://jdaymude.github.io/review/videogame-marvel-strike-force/","publishdate":"2019-01-02T12:00:00-07:00","relpermalink":"/review/videogame-marvel-strike-force/","section":"review","summary":"Despite a wacky story that attempts to justify its central interdimensional conflict, this game gives a polished turn-based strategy experience without too many roadblocks to free-to-play progression. The roster of playable heroes, villains, and minions is wide, and the many mode variations on the core mechanics work in concert to keep things fresh. **8 / 10**.","tags":["turn-based-strategy","role-playing","free-to-play"],"title":"MARVEL Strike Force","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"Sing, Unburied, Sing is a work of lyrical beauty on a backdrop of persistent ugliness and cruelty, a masterpiece in storytelling set in a world of narratives forgotten or ignored, a page-turning delight built atop a visceral and aching pain. In Sing, Unburied, Sing, Ward gifts us with the story of a 13 year-old named Joseph whose White father Michael is in Mississippi\u0026rsquo;s maximum security prison and whose Black mother Leonie is gone and high more than she isn\u0026rsquo;t. Joseph lives with his Black grandparents — two hardened but caring strongholds of wisdom and love, both carrying a lifetime of sorrow but only one carrying cancer — and his 3 year-old sister Kayla, who seemingly adores her big brother more than anything or anyone else in the world. A kind of mystic spiritualism hangs over Ward\u0026rsquo;s world and characters, so when a sudden road trip drags Leonie, Joseph, and Kayla from their coastal home deep into the heart of Mississippi, the present and all its struggles never seem far from the brutal past that created them.\nThe rural South is not a kind place in Sing, Unburied, Sing, and the descriptions of its natural beauty are too often marred by the countless Black men and women whose lives ended violently on its soil. As a reader, you experience this world primarily though the eyes of Joseph, who knows the hardship of his own life but has not entirely lost his innocence or, as is the case for his grandfather Pop, had it taken away from him. Ward expertly weaves rich family history and flashbacks into the present narrative so that it seems multiple stories are always unfolding together, heightening our ability to see the connections between them. These exact sort of connections are pregnant with one of Sing, Unburied, Sing\u0026rsquo;s primary themes: that we cannot separate the modern South and its deep, infected scars from the history that shows us how those wounds were inflicted, and that this history has roots not in big movements and national news, but in every sullen lynching tree and unjust court ruling.\nTake, for example, the following passage that showcases Ward\u0026rsquo;s ability to tie a conversation about the past together with the current feelings of the narrator, who has just had his first encounter with police brutality (feel free to skip this if you wish to avoid even minor spoilers).\n \u0026ldquo;My name?\u0026rdquo; he says.\nRichie, I mouth.\nHe looks like he wants to smile but doesn\u0026rsquo;t.\n\u0026ldquo;He told you about me?\u0026rdquo;\nI nod.\n\u0026ldquo;He tell you how he knew me? That we were in Parchman together?\u0026rdquo;\nI huff and nod again.\n\u0026ldquo;They don\u0026rsquo;t send them there as young as you no more.\u0026rdquo;\nMy wrists won\u0026rsquo;t stop hurting.\n\u0026ldquo;Sometimes I think it done changed. And then I sleep and wake up, and it ain\u0026rsquo;t changed none.\u0026rdquo;\nIt\u0026rsquo;s like the cuffs cut all the way down to the bone.\n\u0026ldquo;It\u0026rsquo;s like a snake that sheds its skin. The outside look different when the scales change, but the inside always look the same.\u0026rdquo;\nLike my marrow could carry a bruise.\n[\u0026hellip;] I have to look away from the wrong of the boy folded onto the floor of the car, so I stare out the window at the tall trees flashing past and think about the gun. Even though it reminded me of so much cold, I think it would have been hot to touch. So hot it would have burned my fingerprints off.\n— Sing, Unburied, Sing, pages 171–172.\n Enough cannot be said about Ward\u0026rsquo;s ability to craft prose that reads like grand poetry and easy conversation all at once. Her descriptions are delightful and vivid: every texture is tangible, every climate palpable, every smell immediately recognizable. Only when it comes to the occasional cultural subtlety or clever trick does Ward seem to slow down, as if to gently stoop to our understanding and check that we\u0026rsquo;re keeping up. Take, for example, this gem (no spoilers, so read freely):\n There are people: tiny and distinct. They fly and walk and float and run. They are alone. They are together. They wander the summits. They swim in the rivers and sea. They walk hand in hand in the parks, in the squares, disappear into the buildings. They are never silent. Ever present is their singing: they don\u0026rsquo;t move their mouths and yet it comes from them. Crooning in the yellow light. It comes from the black earth and the trees and the ever-lit sky. It comes from the water. It is the most beautiful song I have ever heard, but I can\u0026rsquo;t understand a word.\nI am gasping when the vision passes. The dark underbelly [\u0026hellip;] looms before me: creaking then silent. I look to my right and see a flash of the water, the rivers, the wilderness, the cities, the people. Then darkness. I look to my left and see that world again, and then it is gone. I claw at the air, but my hands strike nothing; they rend no doorways to that golden isle.\nAbsence. Isolation. I keen.\n— Sing, Unburied, Sing, page 241.\n The questions that this novel leaves about what hope and healing look like in the rural South are pertinent ones, and their delivery is somehow both searing and soothing, holding our feet to the fire while knowing it is what we need most. I am very thankful to have read my first Ward novel, and hope to have caught my breath by the time she releases another.\n","date":1545937200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1545937200,"objectID":"306331ac8a68de1d1f95aaaff191708a","permalink":"https://jdaymude.github.io/review/book-sing-unburied-sing/","publishdate":"2018-12-27T12:00:00-07:00","relpermalink":"/review/book-sing-unburied-sing/","section":"review","summary":"This lyrically beautiful novel explores rural Mississippi, masterfully demonstrating how the present and all its struggles never seem far from the brutal past that created them. The questions that this novel leaves about what hope and healing look like in the rural South are pertinent ones, and their delivery is somehow both searing and soothing, holding our feet to the fire while knowing it is what we need most. **9 / 10**.","tags":["coming-of-age","literary-fiction","historical-fiction"],"title":"Sing, Unburied, Sing","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["creative"],"content":"As a PhD student, I get to travel quite a bit. In just the last two years, I\u0026rsquo;ve been to Atlanta (a few times, once as a visiting researcher to GaTech for 3 months), Austin, Vienna, Dagstuhl, and — most recently — Tokyo. I get to meet interesting researchers on every trip, whether it be during a conference coffee break (where \u0026ldquo;meeting\u0026rdquo; people occasionally feels like getting interrogated about research) or by running into each other while meandering through a national park.\n These trips are largely work. I listen to talks on the latest research and imagine ways to connect them to my own. I introduce myself to more senior researchers (usually hesitantly) in the hopes that they\u0026rsquo;ll remember who I am once they\u0026rsquo;re through answering my questions. I stay up way too late the night before my talk polishing my slides to (what I hope is) perfection. I scribble all over whiteboards, drawing (mostly) intelligible pictures when working out new ideas with collaborators.\n Need to update \u0026ldquo;slides\u0026rdquo; with a link to the talk I gave at WSSR. But then there\u0026rsquo;s the beauty of getting to go to new places because I have to. As an introvert and someone who\u0026rsquo;s pretty happy being in one place, travel is definitely not an itch I need to scratch (to me, \u0026ldquo;wanderlust\u0026rdquo; often feels like a made up word fellow Millennials use to describe the need for jealousy-inducing Instagram content). But my PhD has helped me learn that there\u0026rsquo;s a lot out there to see and understand, and somehow the difference and uncertainty and novelty of it all makes me feel hope.\nSo, until we meet again, Tokyo.\n","date":1545419700,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1545419700,"objectID":"1e7cb9dd442c8c77bf8d7a74725ef852","permalink":"https://jdaymude.github.io/post/oh-the-places-youll-go/","publishdate":"2018-12-21T12:15:00-07:00","relpermalink":"/post/oh-the-places-youll-go/","section":"post","summary":"I get to travel quite a lot as a PhD student. This video shows the highlights of my first trip to Tokyo.","tags":["tokyo","travel","videography"],"title":"Oh, the Places You'll Go","type":"post"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1541314800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1541314800,"objectID":"c3d43e34e3c212f7a10c4c81f7f66aec","permalink":"https://jdaymude.github.io/event/2018wssr-sops/","publishdate":"2018-11-04T16:00:00+09:00","relpermalink":"/event/2018wssr-sops/","section":"event","summary":"In this talk, I give a comprehensive overview of the amoebot model for programmable matter, dividing algorithms and applications into three main categories: deterministic/stateful algorithms, fully stochastic algorithms, and applications to swarm robotics.","tags":["programmable-matter","leader-election","shape-formation","coating","compression","bridging","separation","smarticles","locomotion","phototaxing","swarm-robotics","markov-chains","distributed-algorithms"],"title":"Self-Organizing Particle Systems: an Algorithmic Approach to Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Creating an iOS puzzle game with minimalist design and the latest iOS features (3D Touch, Haptic, etc.) seems to be the surefire strategy for getting featured by Apple in the App Store in the late 2010s. But despite attaining that all-important medal of honor, Splashy Dots serves, at best, a bland and lightly logical time-waster.\nAt its core, Splashy Dots is about connecting dots on a grid, starting and ending at specified locations without being allowed to backtrack. Its aesthetic is vaguely reminiscent of an art gallery, and connecting the colored dots is something like \u0026ldquo;paint through all the colors without lifting your paintbrush\u0026rdquo;. Except the colors don\u0026rsquo;t matter, and the \u0026ldquo;paintings\u0026rdquo; that comprise the levels never end up looking like anything nice (unless you really like abstract art, in which case, knock yourself out).\n It\u0026rsquo;s difficult not to compare Splashy Dots to other casual puzzle games that are unequivocally richer experiences. Take Dots and its excellent sequel Two Dots, for example. Splashy Dots seems to be a carbon copy when it comes to the Dots games' minimalist designs, but replaces the innovative and progressively more difficult gameplay with an inane, repetitive experience. Or, if we want to focus more on the \u0026ldquo;art\u0026rdquo; aspect, consider any Picross game. Despite being quite repetitive, Picross stays engaging by promising the player that all the numbers and squares will eventually depict something. It\u0026rsquo;s a promise that the experience will be rewarding, even if that reward is just a pixelated happy face. Splashy Dots, in turn, offers every combination of colored lines imaginable. And something about discovering hundreds of crappy paintings just isn\u0026rsquo;t a formula that keeps me coming back for more.\n","date":1541185200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1541185200,"objectID":"45407cf200bcbfb4a6c44023adcaecf7","permalink":"https://jdaymude.github.io/review/videogame-splashy-dots/","publishdate":"2018-11-02T12:00:00-07:00","relpermalink":"/review/videogame-splashy-dots/","section":"review","summary":"This minimalist puzzle experience amounts to a bland and lightly logical time-waster. The levels are repetitive and require little thinking, and discovering hundreds of crappy paintings just isn't a formula that keeps me coming back for more. **3 / 10**.","tags":["casual","puzzle"],"title":"Splashy Dots","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Every review for Toby Fox\u0026rsquo;s Undertale seems to somehow impart a deep seeded conviction that this truly is one of the most emotional, clever, unexpected games of all time. That conviction is so powerful that by the time I metaphorically pulled this title off the shelf and gave it a good dusting (months after I got it as a much wanted gift), the idea that I was going to be blown away by this little indie game was all but a concrete expectation. That hope only grew when, after falling in love with \u0026ldquo;His Theme\u0026rdquo; when it was used as a backing track behind some Overwatch voice lines, I found Undertale\u0026rsquo;s soundtrack to be incredible in its own right.\nPerhaps by osmosis, I had come to respect the vague, sacred secrecy the community held around the game\u0026rsquo;s details. But it wasn\u0026rsquo;t until I fired it up for the first time that I realized I\u0026rsquo;d never even seen a screenshot of Undertale before, and it was honestly a jarring experience. Playing on my 3000x2000 Surface Book display, Undertale loaded as a little box of pixel graphics that only occupied a ninth of my screen, and it took me a solid amount of Googling to figure out if it even had a fullscreen mode (it does, press F4). Once it was big enough to actually see, it was a whole other struggle to figure out how to control stuff, as Undertale offers you no real tutorial whatsoever (arrow keys to walk, and Z, X, and Ctrl for pretty much everything else). In fact, the initial feeling I had was one of deflation; this supposedly perfect game was actually a time machine back to the days of pixel art and text-based RPGs with a bad on-ramping experience.\n And that brings us to the paradox of Undertale: in order to give it all the praise it deserves, to show off all the things that make it both sharply witty and warmly endearing, and to convince a newcomer to push past the honestly confounding first 10 minutes of play, I\u0026rsquo;d have to spoil a little of the game. And that is something I should absolutely not do. Because realizing what Undertale is, living out the experience of a truly beautiful game revealing itself to you in the subtlest of character dialogue, and feeling your assumptions about how it should be played slip away — all of this must be yours and only yours.\nSo have a little hope, press on, and stay determined. You\u0026rsquo;ll be so happy you did.\n","date":1540321200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1540321200,"objectID":"38fa1c37b29beb98cacde4aa9fba7999","permalink":"https://jdaymude.github.io/review/videogame-undertale/","publishdate":"2018-10-23T12:00:00-07:00","relpermalink":"/review/videogame-undertale/","section":"review","summary":"What begins as a jarring and somewhat counterintuitive experience slowly unfolds into a truly beautiful work of art. To explain Undertale is to spoil it, but I echo many other reviews of this game when I say that it is a must play, especially for the introspective. **9 / 10**.","tags":["role-playing","choices-matter","pixel-art"],"title":"Undertale","type":"review"},{"authors":["Marta Andrés Arroyo","Sarah Cannon","Joshua J. Daymude","Dana Randall","Andréa W. Richa"],"categories":["research"],"content":"","date":1538092800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1538092800,"objectID":"e182c1540bd0421d0f52a07b46a41666","permalink":"https://jdaymude.github.io/publication/andresarroyo2018-bridging/","publishdate":"2018-09-28T00:00:00Z","relpermalink":"/publication/andresarroyo2018-bridging/","section":"publication","summary":"We extend the stochastic approach to self-organizing particle systems used in compression to *shortcut bridging*, in which particles self-assemble bridges over gaps that balance a tradeoff between bridge length and cost. This work is inspired by the bridging behavior of *Eciton* army ants, and demonstrates how local interactions can guide a system to globally optimal configurations.","tags":["programmable-matter","bio-inspired","bridging","markov-chains","distributed-algorithms"],"title":"A Stochastic Approach to Shortcut Bridging in Programmable Matter","type":"publication"},{"authors":["William Savoie","Sarah Cannon","Joshua J. Daymude","Ross Warkentin","Shengkai Li","Andréa W. Richa","Dana Randall","Daniel I. Goldman"],"categories":["research"],"content":"Related Press Smart Swarms Seek New Ways to Cooperate. Kevin Hartnett. Quanta Magazine, February 2018. (Also featured in ACM TechNews). ","date":1537833600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1537833600,"objectID":"1fd36900e4f6728d251fbfdbf909f645","permalink":"https://jdaymude.github.io/publication/savoie2018-supersmarticles/","publishdate":"2018-09-25T00:00:00Z","relpermalink":"/publication/savoie2018-supersmarticles/","section":"publication","summary":"We study the ensemble behavior of *smarticles*, smart active particles that are incapable of moving alone, but collectively can push against one another. We show that by introducing asymmetries among smarticles' behaviors, their chaotic interactions can yield directed motion.","tags":["programmable-matter","swarm-robotics","active-matter","locomotion","phototaxing","compression","smarticles"],"title":"Phototactic Supersmarticles","type":"publication"},{"authors":["Sarah Cannon","Joshua J. Daymude","Cem Gökmen","Dana Randall","Andréa W. Richa"],"categories":["research"],"content":"","date":1532304000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1532304000,"objectID":"1d84577dc4f98d9c484c8fa4fdd2a59b","permalink":"https://jdaymude.github.io/publication/cannon2018-separationba/","publishdate":"2018-07-23T00:00:00Z","relpermalink":"/publication/cannon2018-separationba/","section":"publication","summary":"We extend the stochastic approach to *heterogeneous* self-organizing particle systems made up of particles of different color classes. We show that by biasing random particle movements based on the number of same-color neighbors, these systems can collectively separate or integrate.","tags":["programmable-matter","separation","markov-chains","distributed-algorithms"],"title":"Brief Announcement: A Local Stochastic Algorithm for Separation in Heterogeneous Self-Organizing Particle Systems","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["movie-review"],"content":"In Isle of Dogs, Wes Anderson brings all the style, heart, and wit of Fantastic Mr. Fox (2009) to a story of his own. This story is told by means of a prologue and four (very clearly labeled) acts following a young boy and a pack of dogs as they struggle against a geopolitical scheme to try and rid their home city of its canine friends.\nIsle of Dogs plays with language extensively, and uses the quirks of its world to its advantage. Dog barks are \u0026ldquo;translated\u0026rdquo; into English for the viewer\u0026rsquo;s pleasure, while the humans speak their native tongue (Japanese, occasionally translated by a literal translator). There\u0026rsquo;s low-hanging fruit, like when the lead dog Chief (Bryan Cranston) tells another to pass on a message to a \u0026ldquo;bitch you\u0026rsquo;ll find there\u0026rdquo;, as well as light social commentary, like when Chief asks to see showdog Nutmeg\u0026rsquo;s (Scarlett Johansson) \u0026ldquo;tricks\u0026rdquo; but she refuses, or when Chief tries to reckon with his own nature and violent responses (\u0026ldquo;I bite, but I don\u0026rsquo;t know why.\u0026quot;).\nBut as important as dog-to-dog and human-to-human dialogue is in furthering plot points and poking fun at the absurdity of the film, some of the most profound moments occur in the space between humans and their best friends, where actions and emotions establish connections where words cannot. In particular, watching the relationships between Atari (Koyu Rankin) and the main pack of dogs unfold is satisfying, endearing, and at times hilarious.\nThe winsome, charming world of tactile materials in stop-motion style doesn\u0026rsquo;t bar the film from diving into more gruesome scenes, like killing live sea creatures to prepare sushi or performing a kidney surgery. It also gives a platform to build up caricatures of relevant issues, like political leaders ignoring scientific findings, youth protesting against the powers at be, and marginalized populations being abused and mistreated for the betterment of the majority. That being said, this is a Wes Anderson film, so it certainly comes complete with its problematic blind spots.\nThis film was thoroughly enjoyable and another wonderful addition to the Anderson filmography. Smart, touching, beautiful, and odd, it seems to both exist in another world and yet feel deeply personal, a whimsical analogy to a human\u0026rsquo;s relationship with our four-legged friends.\n","date":1529262000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1529262000,"objectID":"a2db421ee01b5428bd649fcb2850c0bc","permalink":"https://jdaymude.github.io/review/movie-isle-of-dogs/","publishdate":"2018-06-17T12:00:00-07:00","relpermalink":"/review/movie-isle-of-dogs/","section":"review","summary":"In his second animated film, Wes Anderson fills a caricature of modern Japan with intrepid dogs and concerned children fighting for the right to keep dogs in their city. Clever dialogue and visual humor are abundant, but some of the most profound moments occur in the space between humans and their best friends, where actions and emotions establish connections where words cannot. **8 / 10**.","tags":["adventure","animation","stop-motion"],"title":"Isle of Dogs","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"After Josef Fares\u0026rsquo;s emotionally stunning success with Brothers: A Tale of Two Sons, I honestly wasn\u0026rsquo;t sure how his new team at Hazelight Studios could follow it up with their first game. Certainly there would have to be a solid story at its heart, but what else? As another story about two male co-lead characters, could A Way Out invent new and fresh co-op mechanics? Could it evoke emotional responses on par with those in Brothers without recycling too much material? Most importantly, could it — like Brothers — ask thematic questions that pierce beyond the screen and into reality?\nThe answer to all three of these questions is a resounding yes. In A Way Out, two players (either locally or online) each control one of Vincent and Leo, the story\u0026rsquo;s protagonists. At the story\u0026rsquo;s start, Vincent is going to jail while Leo has already been in for several months. As they slowly begin to trust one another, they learn that they both have it out for a crime boss named Harvey, the man who got them both canned. United by a desire to find their own justice, the pair hatch a plan to escape.\nThe story unfolds as our protagonists interact with one another and others in their environment, tasking players with surviving harrowing combat, pulling off pieces of an escape plan, and solving puzzles using their surroundings. But these elements can be found in many games; the differentiating factor for A Way Out is the way in which it demands cooperation from the players, even in the most mundane tasks. Especially in the first half of the game, every situation is an opportunity to synergize in new ways. As Vincent and Leo learn to trust one another and work together, so do the players controlling them.\nIt is worth mentioning, though not in any spoiler-revealing detail, that the gameplay is both surprisingly clever and spans many different game genres. Though most of the game takes place in a split-screen, third-person perspective, particular sequences play out like moments from Grand Theft Auto, Battlefield, Uncharted, Assassins' Creed, and even Street Fighter. Beyond the main game itself, many refreshing and somewhat odd mini-game experiences are scattered throughout the story: Leo and Vincent can challenge one another in brawn (in an arm-wrestling match), brains (in a game of Connect Four), and everything in between.\nWARNING: This part of the review contains game-ruining spoilers.\nBut the glory of this game lies in its story\u0026rsquo;s false resolution. After brutally murdering Harvey in his safe house in Mexico and reclaiming the Orlov diamond whose sale Harvey sabotaged, Leo and Vincent land stateside. Perhaps we should have expected otherwise, but it felt like the game was coming to a close and both characters would go back to their wives and children happy, scores settled. Instead, a band of police storm the runway, and our protagonists have nowhere left to go. Instead of emerging victorious, the pointed guns and blue and red lights spell a return to where this adventure started.\nIf only, though, that were the only twist. In one painful blow, the writers destroy everything the players have learned to trust: the characters they control, and one another. When the supposed chief of police approaches to arrest the pair, a simple \u0026ldquo;Good work, Vincent\u0026rdquo; turns the entire game on its head. Everything following that point drives the pain of betraying a friend and being betrayed deeper and deeper until the players are forced to control Vincent and Leo in a 1v1 gunfight: the antithesis of every cooperative wall climb, every narrow escape, every emotional vulnerability.\nEven with spoilers disclaimed, it feels wrong to give away the game\u0026rsquo;s final emotional gut-punch. Suffice it to say that it hits just as hard as the infamous sequence in Brothers where the little brother has to swim on his own. Even the way we\u0026rsquo;ve learned to control our characters and interact in this game\u0026rsquo;s world is questioned and systematically torn down.\nSpoiler section over!\nThis game is everything you could want from an interactive story, and the masterful way that everything is built up around cooperation makes it even better. While it doesn\u0026rsquo;t fully achieve complete emotional synchronization between players and their characters (I found myself protesting loudly and angrily throughout the end sequence), the storytelling is among the finest I\u0026rsquo;ve had the pleasure to experience in a video game.\nBugs Many of the character\u0026rsquo;s voice lines were not accurately timed, and would often trigger at irrelevant moments. This may not be a bug so much as a way the experience could be polished further.\n","date":1522868400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1522868400,"objectID":"437247a9c9670781f6593e6a6f0c7681","permalink":"https://jdaymude.github.io/review/videogame-a-way-out/","publishdate":"2018-04-04T12:00:00-07:00","relpermalink":"/review/videogame-a-way-out/","section":"review","summary":"In his first game as part of Hazelight Studios, Josef Fares delivers a gritty cooperative adventure that skillfully translates the emotion of its characters to their respective players. It is best experienced with a friend, in person. **9 / 10**.","tags":["co-op","interactive-story","crime","third-person"],"title":"A Way Out","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["movie-review"],"content":"I decided to watch Tinker Tailor Soldier Spy (and even convinced my sister and aunt to join me) because I was looking for something firmly in the thriller category and I\u0026rsquo;d heard it was good. What I got instead was a movie with an initially inscrutable plot and a star-studded cast of exclusively white men (Gary Oldman, Colin Ferth, Tom Hardy, Benedict Cumberbatch, etc.) whose acting was as dull and bleak as the color tones the film is washed in. Don\u0026rsquo;t get me wrong — the greys, blues, and browns were probably the right artistic choice for a spy film set in the Cold War — but there was no help coming in the form of visual effects when the rest of the plot, acting, and music were lacking.\nThe movie follows a retired MI6 veteran George Smiley as he tries to uncover the truth about a possible Soviet double agent within the agency. He and four other agents worked directly under \u0026ldquo;Control,\u0026rdquo; who in the years before his (natural) death became obsessed with a \u0026ldquo;mole\u0026rdquo; theory. But when Control sends an agent to Budapest to uncover the truth, the agent goes missing and is presumed dead.\nThe setup is clear enough, looking back on it, but the film\u0026rsquo;s exposition does very little to explain itself. There\u0026rsquo;s a natural learning curve with any spy story — the cloak-and-dagger secrecy of any good spy isn\u0026rsquo;t all too conducive to laying out details plainly — but the issue with Tinker Tailor Soldier Spy is this: as the fog begins to clear and the secrets of the clandestine become known, you realize the truth wasn\u0026rsquo;t worth the intrigue. There is no twist. It feels as if the story becomes softer as it goes (with the exception of a particularly brutal pair of torture and murder scenes in Soviet Russia).\nPerhaps my view is too uncharitable, or this film wasn\u0026rsquo;t my taste. But in my mind, the value of this film seemed hidden away, its existence known but always out of reach, just as a spy would prefer to keep information and leave the rest of us dissatisfied.\n","date":1519154676,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1519154676,"objectID":"b32730e092a1f087aba4dd6c022b578e","permalink":"https://jdaymude.github.io/review/movie-tinker-tailor-soldier-spy/","publishdate":"2018-02-20T12:24:36-07:00","relpermalink":"/review/movie-tinker-tailor-soldier-spy/","section":"review","summary":"This story of espionage in the midst of the Cold War has the premise and cast to be phenomenal, but ends up as dull and bleak as the color tones the film is washed in. Unfortunately, as the fog clears and the secrets of the clandestine become known, I couldn't shake the feeling that the truth wasn't worth the intrigue. **4 / 10**.","tags":["espionage","thriller","mystery","historical-fiction"],"title":"Tinker Tailor Soldier Spy","type":"review"},{"authors":["Joshua J. Daymude","Robert Gmyr","Andréa W. Richa","Christian Scheideler","Thim Strothmann"],"categories":["research"],"content":"","date":1514678400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1514678400,"objectID":"a69bfb1bd2534ed935dc4fcff69a0ed4","permalink":"https://jdaymude.github.io/publication/daymude2017-improvedleaderelection/","publishdate":"2017-12-31T00:00:00Z","relpermalink":"/publication/daymude2017-improvedleaderelection/","section":"publication","summary":"We present a randomized algorithm for leader election in the amoebot model. It is the first of its kind with rigorous correctness and runtime guarantees, and can tolerate holes in the system.","tags":["programmable-matter","leader-election","distributed-algorithms"],"title":"Improved Leader Election for Self-Organizing Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Blendoku 2 is an excellent example of a free, mobile puzzle game done right. Based on the deceptively simple concept of sorting colors, Blendoku 2 offers great depth of content and innovative mechanics to a mobile puzzle scene overrun by match-three spinoffs and their ilk.\nGameplay is straightforward: a crossword-like board is presented with a small number of colored tiles already filled in. Players must then place the remaining colors into the correct spaces so that the resulting board follows some sort of color gradient. Variants on this basic formula include \u0026ldquo;Keyless\u0026rdquo;, where the original board has no preset tiles; \u0026ldquo;Decoys,\u0026rdquo; where some tiles are red herrings and not part of the end configuration, and \u0026ldquo;Clones,\u0026rdquo; where a color corresponds to multiple spaces on the board. Completionists can challenge themselves to beat levels faster than the world average time and do so perfectly, avoiding putting any colors in incorrect locations. Achievements accompany these feats and more (and all are possible without payment).\n Levels are organized by difficulty. The base game, which is completely free, includes generous amounts of content: 150 \u0026ldquo;simple\u0026rdquo; levels, 150 \u0026ldquo;medium,\u0026rdquo; 100 \u0026ldquo;hard,\u0026rdquo; 100 \u0026ldquo;master,\u0026rdquo; and 50 bonus \u0026ldquo;thanks\u0026rdquo; levels. This was more than enough to provide a satisfying experience, and interested players can more than double the number of levels by purchasing level packs. Monetization, per usual, comes from ads played between levels.\nThere are a variety of other game modes and perks to discover throughout the game, including a multiplayer versus mode, \u0026ldquo;painting\u0026rdquo; levels, a \u0026ldquo;color IQ\u0026rdquo; test, and a daily challenge level. These are all nice enough experiences, demonstrating the developers’ abilities to strike a near-perfect balance between providing abundant content and remaining focused on their core gameplay. As a result, Blendoku 2 feels full without trying to do too much.\n All in all, Blendoku 2’s commitment to simplicity in design and mechanics combined with its plethora of free content makes it a must-try for puzzle lovers.\n","date":1513537200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1513537200,"objectID":"b073f427e24be9dbcef1339862c6b209","permalink":"https://jdaymude.github.io/review/videogame-blendoku-2/","publishdate":"2017-12-17T12:00:00-07:00","relpermalink":"/review/videogame-blendoku-2/","section":"review","summary":"Presented with a crossword-like board with a few colored tiles already filled in, players must place the remaining colors to create a gradient. A generous amount of content and extra modes are available for free. **7 / 10**.","tags":["puzzle","casual","free-to-play"],"title":"Blendoku 2","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"This is arguably the most compelling, relevant, and urgent book on injustice in the modern world that I\u0026rsquo;ve read. An immediate self-critique is that I haven\u0026rsquo;t read many books in this area, but that fact does not make my statement any less true, nor does it negate the praises of others who were similarly woken and shaken by its contents.\nThe authors — two New York Times journalists by day — guide the reader through a structured and deep lesson in the reality of oppression and violence against women across the globe. Acknowledging at one point that rattling off statistics is a less powerful motivator than utilizing anecdotes, their writing places women\u0026rsquo;s stories in the forefront. For all their gut-wrenching, repulsive details, this method is indisputably effective. Rape, forced sex trafficking, genital cutting, involuntary drugging, fistulas, and systemic denial of opportunity form an incomplete list of topics on which Nick and Sheryl report. The often literally gory details of these brutalities will remain difficult to forget.\nPerhaps most importantly, the book refuses to play a game of shock-and-awe preaching. Every call to action is qualified by cited research, which in turn is vetted for implicit and broken assumptions. The reader is repeatedly reminded that there is no silver bullet for these issues, so in its place, Nick and Sheryl dish out a whole menagerie of ammunition. Current governmental efforts, individuals starting movements, social entrepreneurship, and international aid groups are all discussed at length.\nEvery chapter is followed by an afterword that directly engages the reader. The last chapter is entirely dedicated to applying the newfound knowledge from the first thirteen chapters. The appendix is stuffed with 47 organizations and aid groups that maximize cost-effective aid and impact for local people, complete with websites and ways to get involved. Nick and Sheryl take every opportunity to move us as Western readers from our armchairs into places of progress, and I thank them and the women whose stories they shared for it.\n","date":1513537200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1513537200,"objectID":"0d134bd154f4550a260551b1bfb9c89a","permalink":"https://jdaymude.github.io/review/book-half-the-sky/","publishdate":"2017-12-17T12:00:00-07:00","relpermalink":"/review/book-half-the-sky/","section":"review","summary":"This is a most compelling, relevant, and urgent book on injustice in the modern world. Even while using vivid and often horrifying anecdotes to make clear the plight of women worldwide, there are no shock-and-awe tactics here; every claim is backed with research and vetted for broken assumptions. Every opportunity is taken to move the reader from their armchair into a place of progress. **10 / 10**.","tags":["social-justice","feminism","politics"],"title":"Half the Sky","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"My first journal paper was published early last week, marking a milestone in the winding forest path that is my PhD. The paper has some nice ideas and results I\u0026rsquo;m proud of, but — regrettably — the writing style and level of mathematical rigor needed for publication can make it pretty hard to decipher for anyone not familiar with our niche of computer science. I\u0026rsquo;m of the opinion that ideas are only useful if people can understand them, so to that end I\u0026rsquo;m going to explain this paper in a way that\u0026rsquo;s a bit less formal and academic. With a little effort, I think we\u0026rsquo;ll both learn something new here. (And if it\u0026rsquo;s still all Greek to you, I\u0026rsquo;ll happily answer questions you leave in the comments).\nThe Nickel Version (TL;DR) The paper (whose title is mathy and unimportant) is all about programming futuristic, sci-fi materials that don\u0026rsquo;t exist yet to coat other objects in even layers as (relatively) fast as possible.\nThe, Uh, Dollar(?) Version Let\u0026rsquo;s take a look at the paper\u0026rsquo;s title (emphasis added): \u0026ldquo;On the Runtime of Universal Coating for Programmable Matter.\u0026rdquo;\nRuntime is a word we use to talk about how fast an algorithm is. As in many other aspects of life, faster is better and more efficient. So this paper is about how fast \u0026ldquo;Universal Coating for Programmable Matter\u0026rdquo; is.\n Programmable matter broadly describes any kind of physical material that can change itself as a reaction to what\u0026rsquo;s around it without human interaction. It\u0026rsquo;s a bit sci-fi, but imagine a future in which roads fill their own potholes and cracks after wear and tear, clothes heal themselves from fraying and holes, or artificial cells isolate and neutralize malignant tumors in the human body. It sounds crazy and is definitely out there, but that\u0026rsquo;s what we\u0026rsquo;re talking about here.\n Universal Coating is the action we\u0026rsquo;re trying to do. In this context, we mean \u0026ldquo;coating\u0026rdquo; like a coat of paint; we want to cover something as evenly as possible. (Nobody likes a lumpy paint job). \u0026ldquo;Universal,\u0026rdquo; as a math word, means that a technique works in many/all cases. Here, we\u0026rsquo;re talking about a single approach to coating that works no matter what the object to be coated looks like. (Which is pretty cool).\n So, all together, this paper is about analyzing the speed of a particular approach to using futuristic materials for coating any kind of object in nice, even layers. (Ok, so even the one sentence wrap up is a mouthful). Also, a big thank you to Annie Carson for the great illustrations!\nSo How Does It Work? I\u0026rsquo;m really glad you asked. Actually, I\u0026rsquo;m really glad you\u0026rsquo;re still here after that heavy appetizer of an overview; hopefully it didn\u0026rsquo;t spoil your appetite before our main course, which starts right now! Take a look at a simulation of the Universal Coating algorithm over on our lab site, and keep it open for the rest of this section so you can refer back to it.\nWe need a bit of terminology before I explain what\u0026rsquo;s going on with all those dots and colors. There are two main \u0026ldquo;things\u0026rdquo; in this algorithm. Thing 1 is the object, which is the cluster of dots with black circles in the middle. We\u0026rsquo;re keeping things nice and simple in this example by making the object a hexagon, but it can be essentially any shape you want (\u0026ldquo;universal\u0026rdquo;, remember?). Thing 2 is the particle system, which are all the other dots that move around and change color. \u0026ldquo;Particle system\u0026rdquo; is just the term we use for the programmable matter stuff we talked about before: we\u0026rsquo;re trying to coat the object with these particles.\nIn really broad strokes, the algorithm can be broken down into four major steps:\n Get all the particles oriented towards the object using something like follow-the-leader. In the simulation video (0:00–0:02), this is when they all turn yellow. If you start at any yellow particle and follow its pointer to the next particle and so on, you\u0026rsquo;ll always end up at the object. Coat the object\u0026rsquo;s first layer. This happens insanely fast in the video (0:01–0:02) but there are actually a couple particles that turn red and fill in the few positions on the object\u0026rsquo;s first layer that weren\u0026rsquo;t already filled. You can see them if you pause the video and drag the slider back and forth around 0:01. Decide on a position to be the start/end of each layer. Choosing this marker position plays a big role in helping the particles learn when one layer is finished so they can start forming the next one. In the video (0:02–0:07), this decision process is shown with the line segments around the object changing colors. At 0:07, the particle occupying the marker position turns a light grey color. Coat the object in more layers one by one until all particles have been used. The video (0:08–0:20) shows this quite clearly, with finished particles turning green. The grey line of particles growing from the object towards the bottom are the particles from Step 3 which mark the start/end of each layer. And that\u0026rsquo;s it! Perhaps as a point of pride, I have to mention that — although simple to describe — this algorithm is really involved. One of the main difficulties is that each particle runs this algorithm individually, so instead of Steps 1–4 happening nice and sequentially, they can actually all happen at once. And… yeah, it\u0026rsquo;s as chaotic as it sounds. The good news is that, in a previous paper, our group proved this algorithm always works, no matter what. Going forward, we\u0026rsquo;ll just take the fact that it works for granted.\n(Quick) Get Your Coat! I can\u0026rsquo;t remember how many times I got in the car to go somewhere as a kid only to be sent back inside to get a jacket. Mom never said the \u0026ldquo;quick\u0026rdquo; part, but it was definitely implied!\nWe\u0026rsquo;re going to shift our discussion to the real work of this new paper: proving that our Universal Coating algorithm runs reasonably fast. Let\u0026rsquo;s start with a motivating example for why you might do this kind of analysis:\nPretend there\u0026rsquo;s a secret technique for earning $1,000,000. Maybe it even comes with a guarantee that it will always work. We might get excited about something like that, or at least want to know more. But what if we found out that no one knew how long it would take to work? Or even worse, what if the fine print said it would take more days than the number of atoms in the universe? Well. We might still be waiting for our payout long after inflation turns a million dollars into pocket change, the cows come home, and the sun expands to consume the earth.\nThe lesson to be learned here: we need to know both that an algorithm works and that it won\u0026rsquo;t take a ridiculously long time. So how do we analyze the algorithm\u0026rsquo;s runtime? There\u0026rsquo;s often more than one way to crack that coconut, but the techniques can get pretty involved. Even getting a mastery over the most fundamental techniques can take the larger part of most undergraduate Computer Science (CS) programs. (Fun fact: this side of CS doesn\u0026rsquo;t even have to involve programming, contrary to the popular belief that CS people are a bunch of tech support code monkeys. Yes, I probably can fix your iPhone. No, I didn\u0026rsquo;t learn that in school.)\nTo explain both why analyzing our particular algorithm was nasty and how we ended up doing it, I\u0026rsquo;ll use a quick allegory. Imagine a race between two teams: Team Red and Team Blue. Team Red works like a machine: everyone comes to practice and trains hard, they perform well in events, and — most importantly — they run in perfect lock step, starting together and finishing together. Team Blue, on the other hand, is more about the individual effort. They also perform well in events, but have a mix of sprinters, endurance runners, runners who like to stop and smell the roses, and so on. Some of Team Blue\u0026rsquo;s runners end up finishing really fast, while others take longer.\nOur particle systems are, essentially, Team Blue. We don\u0026rsquo;t make any assumptions about how fast each particle works relative to the others, and it\u0026rsquo;s entirely possible that a particle can suddenly go faster or slower than usual without following a pattern. This makes it hard to figure out when the last Blue runner (or particle) will cross the finish line. So, instead of directly analyzing our system (Team Blue), we proved two things:\n Team Red — a simpler version of our particle systems where everyone progresses through the algorithm at the same rate — runs \u0026ldquo;fast\u0026rdquo;. Team Blue (our particle system) always runs faster than Team Red. Therefore, as a nice logical result, Team Blue also runs \u0026ldquo;fast\u0026rdquo;. In fact, it\u0026rsquo;s entirely possible it even runs really fast!\nGood Job Out There, Get Some Water As a recap, we have an algorithm for programmable matter which coats objects of all shapes and sizes. We showed that this algorithm always works in an older paper, and that it runs pretty fast in this new journal paper. This runtime analysis boiled down to showing that a simplified version of our particle system runs the algorithm quickly, and that the real particle system always runs it even faster. (For my CS people out there, we showed that the Universal Coating algorithm runs in $\\mathcal{O}(n)$ asynchronous rounds with high probability, where $n$ is the number of particles in the system).\nThanks for reading, and feel free to comment with your thoughts, ideas, and questions!\n","date":1513008300,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1513008300,"objectID":"77b1a3f48056f7a2520182d3c8074eb6","permalink":"https://jdaymude.github.io/post/on-your-marks-get-set-coat/","publishdate":"2017-12-11T09:05:00-07:00","relpermalink":"/post/on-your-marks-get-set-coat/","section":"post","summary":"In this post, I break down some key ideas from my new journal paper \"On the Runtime of Universal Coating for Programmable Matter\". TL;DR: the paper is all about programming materials that don't exist yet to coat other objects in even layers as (relatively) fast as possible.","tags":["programmable-matter","coating","dominance-argument"],"title":"On Your Marks, Get Set, Coat!","type":"post"},{"authors":["Joshua J. Daymude","Zahra Derakhshandeh","Robert Gmyr","Alexandra Porter","Andréa W. Richa","Christian Scheideler","Thim Strothmann"],"categories":["research"],"content":"Related Press Opening Paths to Progress with Programmable Materials. Joe Kullman. ASU Now, March 2017. (Also featured in ACM TechNews). ","date":1511827200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1511827200,"objectID":"4909e2ce612b06a164078e174d2c3cc7","permalink":"https://jdaymude.github.io/publication/daymude2018-coatingruntime/","publishdate":"2017-11-28T00:00:00Z","relpermalink":"/publication/daymude2018-coatingruntime/","section":"publication","summary":"In this sequel paper on the *universal coating* problem, we analyze the runtime of an algorithm for self-organizing particle systems that coats 2D objects as evenly as possible. We show this algorithm terminates in a linear number of rounds with high probability, and is competitively optimal.","tags":["programmable-matter","coating","distributed-algorithms"],"title":"On the Runtime of Universal Coating for Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["movie-review"],"content":"Thor: Ragnarok came to finish what both Guardians of the Galaxy films started. Instead of honing in on one hero\u0026rsquo;s dramatic story arc, Ragnarok stars a group of them. The action takes us from planet to planet across all the known galaxy by spaceship and wormhole anus. But most importantly, Ragnarok acknowledges what we\u0026rsquo;ve known from the beginning: superheroes are absurd and should be just as ridiculous as they are strong, smart, determined, and attractive. Play is woven into the fabric of the film, from Thor and Loki\u0026rsquo;s \u0026ldquo;Get Help\u0026rdquo; fighting routine to Dr. Strange providing Thor a golden, bottomless beer fit for the Norse god (as promised to us at the end of the sorcerer\u0026rsquo;s own film). Even more serious topics, like Bannon and Hulk\u0026rsquo;s brain vs. brawn identity crisis and villain Hela\u0026rsquo;s description of executioners in Asgard are treated with a jesting lightness.\nRagnarok neatly sidesteps two pitfalls common to recent team-up superhero films: lack of screentime for its individual characters and weakening plot substance for the sake of comedy. In fact, some of the film\u0026rsquo;s most hysterical moments impressively include dialogue from three or more main characters while simultaneously advancing the story. When Thor, Bannon, and Valkerie discuss Loki\u0026rsquo;s past mischief while he remains chained but chuckling at their recounting of his past antics, the stratified ages of each character\u0026rsquo;s relationship with Loki shine: Thor and Loki\u0026rsquo;s escalating and ongoing brotherly conflict has existed as long as we\u0026rsquo;ve known them, Bannon last remembers Loki as an alien invader that needed smashing in the first Avengers, and Valkerie — while having as close as possible to a clean slate with Loki — generally mistrusts everyone. This lends itself perfectly to punchlines contrasting Bannon\u0026rsquo;s concerns with Loki\u0026rsquo;s murderous moods with Thor\u0026rsquo;s fond memories of being stabbed by Loki after thinking he was a snake.\nThe film\u0026rsquo;s more serious moments feel all the more poignant and starkly emotional against the backdrop of fun and games that dominate most of the dialogue. Watching the Hulk transform back into Bannon after being overcome with rage and grief on seeing Natasha is heartbreaking, and reminds us that the Hulk isn\u0026rsquo;t the only side of Bannon who carries the weight of his emotions. Heimdall inspires hope in an equally powerful way, and was an unmistakable Jesus figure to me. The way he sees all who are in need and fights for them — often alone in standing against evil and doing so without bravado or recognition — is exactly the kind of hero that inspires me.\nSo after yet another Marvel movie, what makes Ragnarok stand out? We need look no further than the wonderfully quotable one-liners which litter its script, the well-developed and colorful cast of characters which populate its worlds, the perfected formula of self-aware superhero melodrama that guide its structure, and the underlying lessons of true heroism which are embodied by every main character, major and minor alike. If this is the direction Marvel is taking even a fraction of its future movies, I\u0026rsquo;m very excited to see what comes next.\n","date":1511290800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1511290800,"objectID":"c88c6df2eca4deb36dcff28dff86d3fb","permalink":"https://jdaymude.github.io/review/movie-thor-ragnarok/","publishdate":"2017-11-21T12:00:00-07:00","relpermalink":"/review/movie-thor-ragnarok/","section":"review","summary":"In a perfect romp of comedy and superhero action, _Thor: Ragnarok_ manages to have its fun without sacrificing screentime for its broad cast of characters or weakening the plot for the sake of comedy. Yes, it's yet another Marvel movie; no, I'm not even the slightest bit upset. **9 / 10**.","tags":["superhero","action","comedy"],"title":"Thor: Ragnarok","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Hidden object games moved from their old dwellings in children\u0026rsquo;s sections of newspapers to new homes on touchscreens in the early iOS era, and every generation of the operating system sees a new app iterate over the same mechanics. More of the same isn\u0026rsquo;t always bad — it\u0026rsquo;s nice to have new apps with refreshed graphics to replace aging legacy games that are no longer supported — but nevertheless, newcomers must somehow justify their existence. June\u0026rsquo;s Journey had a promising plan to do so: wrap classic hidden object gameplay in a mystery story and toss in some city building-esque filler as a bonus. But it ultimately commits too many sins of other free-to-play, casual games to remain enjoyable, and a poorly executed progression system subjects players to numbing repetition.\n The setting is fairly simple. June is a British WWI veteran nurse with a knack for quick thinking and insightful observations. Upon learning that her sister and brother-in-law were murdered, purportedly in a murder-suicide by her brother-in-law\u0026rsquo;s own hand, she travels to New York to find answers. Your mission quite literally becomes June\u0026rsquo;s: find hidden clues which steadily reveal more of the mystery, bringing you closer to the only answers that will make sense of the violence. As an aside, the family estate has fallen into some disrepair, so coins and resources gained from completing levels can be put towards decorating and renovating dilapidated structures.\nThe progression system is superficial, to say the least. Each hidden object scene can only be accessed after the player reaches the corresponding player level. Player level increases with flowers, a strange disguise for a typical XP/leveling system. But instead of earning flowers through playing levels and finding objects (which one could argue is the whole point), flowers are rewarded for buying decorations and upgrading buildings on the estate. This creates an illogical and contrived system of currencies: playing levels rewards coins and materials, which in turn are used to buy decorations and building upgrades, which in turn reward flowers that sum to higher player levels, which in turn unlock new levels one-by-one. If that sounds unnecessarily complicated, it\u0026rsquo;s because it is. Very little is gained from each currency exchange, and binding a player\u0026rsquo;s story progression to the number of trellises built and bushes planted can only be seen as a ploy to make content last longer.\nThe joy of a hidden object game is in finding things. There\u0026rsquo;s nothing wrong with adding extra elements to the gameplay; a good story is a boon to any game, and rewarding players with an increasingly sprawling and beautiful estate to mark their time investment is quite nice. But when grinding for levels and resources reduces finding hidden objects to memorizing where on the screen to tap, there can be no arguing that June\u0026rsquo;s Journey lost sight of its core gameplay which should have remained its soul.\n","date":1508958000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1508958000,"objectID":"4d238195db9df614dbf462e306050470","permalink":"https://jdaymude.github.io/review/videogame-junes-journey/","publishdate":"2017-10-25T12:00:00-07:00","relpermalink":"/review/videogame-junes-journey/","section":"review","summary":"_June's Journey_ is yet another iteration on the mobile hidden object game, this time wrapped up in a mystery story with some city building filler. A poorly executed progression system stands squarely in the way of a potentially intriguing story, forcing players into numbing repetition. **4 / 10**.","tags":["casual","hidden-object","city-builder","free-to-play"],"title":"June's Journey","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"Image of Eciton army ants forming a shortcut bridge is reproduced with permission from Reid et al. (PNAS, 2015).\n","date":1507312800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1507312800,"objectID":"24e5e9c461962a989cb5c5d26d1dfc72","permalink":"https://jdaymude.github.io/event/2017acoseminar-bridging/","publishdate":"2017-10-06T13:00:00-05:00","relpermalink":"/event/2017acoseminar-bridging/","section":"event","summary":"In this talk, I present a deep dive of our stochastic algorithm for shortcut bridging based on the bridging behavior of *Eciton* army ants.","tags":["programmable-matter","bio-inspired","bridging","markov-chains","distributed-algorithms"],"title":"A Stochastic Approach to Shortcut Bridging in Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"I had set myself on the path of a PhD when I picked this book up at Urbana 2015, and hoped to read up on some guidance. When finally getting a chance to read it a year later, however, I found myself flipping through the life of professor — not a discussion of how best to center my life around Jesus while navigating graduate studies! In a conversational but direct manner, Burge describes the life trajectory of a faculty member in three main stages, each with their own goals, challenges, and successes. Taking the position of an amateur developmental psychologist (himself a professor of New Testament theology), he divides the three main cohorts of professors not by age, but by maturity.\nCohort 1 is concerned with finding security, Cohort 2 with finding success, and Cohort 3 with finding significance. Burge fills out a structured outline for each in his short text, first discussing the marking characteristics of each group, then warning against a series of common failures and difficulties, and concluding with the moments that define the closing of a cohort. It\u0026rsquo;s a helpful collection of list-like information, which makes searching for information easier.\nCoupled with conversations with my advisor on the academic life, Burge provides a good framework for understanding a faculty\u0026rsquo;s personal and professional progression. While not all of it is anywhere near relevant to me right now, it acts as a high-level road map for understanding what\u0026rsquo;s to come.\n","date":1506711600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1506711600,"objectID":"63c385c8d0abf525c00da38d3b193011","permalink":"https://jdaymude.github.io/review/book-mapping-your-academic-career/","publishdate":"2017-09-29T12:00:00-07:00","relpermalink":"/review/book-mapping-your-academic-career/","section":"review","summary":"In a highly structured format, professor of theology Gary Burge guides his readers through the life of an academic faculty from their beginnings in finding security to their mid-life in finding success and finally to their closure in finding significance. While not directly applicable to integrating Christianity with graduate school, the roadmap is useful for the future. **6 / 10**.","tags":["academia","christianity"],"title":"Mapping Your Academic Career","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"I am a panda wielding a kitchen knife, desperately hacking away at as many onions as physically possible and subsequently littering the floor with chopped produce. The noise level in our living room steadily rises as my sister and I frantically shout back and forth at each other; the culinary space station we\u0026rsquo;ve been thrust into is about to rotate, and we\u0026rsquo;ll have a very narrow window before the station rotates again to ferry all the onions into another room where pots will transform them into delicious soups. But the discord is quickly joined by my brother, finding himself caught on the wrong side of an airlock, holding clean bowls for a set of soups that are nearly finished cooking. In a few moments, those soups will burn and set that section of the kitchen on fire; onions are bumped and kicked aside as my panda and my sister\u0026rsquo;s black bear accidentally dash into one another in our simultaneous attempts to get to the fire extinguisher. Orders are being missed, dirty dishes are piling up, soups are burning, tempers are fraying, and — most importantly — hilarity is ensuing. This is Overcooked.\nSet with the task of avoiding certain apocalyptic doom caused by the appearance of a spaghetti monster that cannot be sated, players (controlling cartoon people and anthropomorphic animals) are sent back in time to hone their teamwork and culinary abilities. These cooperative teams of 1–4 players face challenges in cooking a variety of dishes, each introducing its own unique mechanics, in a variety of environments, each with its own hazards. Continuous failure to learn each level\u0026rsquo;s unspoken rules and strategies quickly is more often a source of comedy than of frustration, and any attempts to rely on a comfort strategy are almost always usurped by little surprises to further refine your growing culinary expertise.\nFor the most part, each level is fairly straightforward: obtain ingredients, chop them, assemble them into dishes, cook those dishes, plate them, serve them, and literally rinse and repeat by washing the dirty plates when they\u0026rsquo;re returned. The faster dishes are served, the more money they\u0026rsquo;re worth, and a score of 1 (passing) to 3 (perfect) stars can be scored on each level depending on the total money earned. The numerous ways each stage of preparation overlaps with the others offers more than enough material for flustering and amusing kitchen accidents, but it\u0026rsquo;s the small mechanics tweaks and zany interactions between the players and their environment that keep the already incredible core experience fresh throughout the course of the game. Mishaps abound, such as accidentally throwing away clean dishes instead of handing them to another player or slipping off an iceberg holding a finished pizza.\nAlthough the game can be played alone (wherein a single player controls multiple avatars and switches between them), Overcooked\u0026rsquo;s hilarity of mistakes (and mistakes on top of mistakes) combined with the thrill of (eventual) success is best experienced with friends. In an age where couch co-op is largely ignored in the wake of big screen multiplayer titles, Overcooked not only succeeds in creating a satisfying co-op experience but adds innovative elements beyond the usual cooking game. If Overcooked were a meal, then Ghost Town Games has prepared us something truly wonderful and family-style; my compliments to the chefs.\n","date":1505156400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1505156400,"objectID":"a7daf7bf8e0e8a871841654ecabb6474","permalink":"https://jdaymude.github.io/review/videogame-overcooked/","publishdate":"2017-09-11T12:00:00-07:00","relpermalink":"/review/videogame-overcooked/","section":"review","summary":"In a genre-defining triumph for cooperative games, _Overcooked_ perfects the transmutation of an everyday task (cooking) into pure hilarity. Frantic chopping, cooking, cleaning, and dashing about cause mistakes on mistakes, and ever-changing environments usurp any reliance on a comfort strategy to keep you and your friends surprised and laughing the whole way through. **10 / 10**.","tags":["co-op","cooking","action"],"title":"Overcooked","type":"review"},{"authors":["Marta Andrés Arroyo","Sarah Cannon","Joshua J. Daymude","Dana Randall","Andréa W. Richa"],"categories":["research"],"content":"Image of Eciton army ants forming a shortcut bridge is reproduced with permission from Reid et al. (PNAS, 2015).\n","date":1503532800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1503532800,"objectID":"7332e23a64a23c07f4d87d46f7ca6655","permalink":"https://jdaymude.github.io/publication/andresarroyo2017-bridging/","publishdate":"2017-08-24T00:00:00Z","relpermalink":"/publication/andresarroyo2017-bridging/","section":"publication","summary":"We extend the stochastic approach to self-organizing particle systems used in compression to *shortcut bridging*, in which particles self-assemble bridges over gaps that balance a tradeoff between bridge length and cost. This work is inspired by the bridging behavior of *Eciton* army ants, and demonstrates how local interactions can guide a system to globally optimal configurations.","tags":["programmable-matter","bio-inspired","bridging","markov-chains","distributed-algorithms"],"title":"A Stochastic Approach to Shortcut Bridging in Programmable Matter","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1501268700,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1501268700,"objectID":"c1273d332e3f70f1112c4855657c770a","permalink":"https://jdaymude.github.io/event/2017bda-compression/","publishdate":"2017-07-28T14:05:00-05:00","relpermalink":"/event/2017bda-compression/","section":"event","summary":"In this talk, I present algorithms for compression and shortcut bridging designed using the stochastic approach to self-organizing particle systems.","tags":["programmable-matter","bio-inspired","compression","bridging","markov-chains","distributed-algorithms"],"title":"Local Stochastic Algorithms for Compression and Shortcut Bridging in Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1501267200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1501267200,"objectID":"e6202f8eb8f4f43f94b4a845d0aa9c04","permalink":"https://jdaymude.github.io/event/2017bda-convexhull/","publishdate":"2017-07-28T13:40:00-05:00","relpermalink":"/event/2017bda-convexhull/","section":"event","summary":"In this talk, I present preliminary work on an algorithm for self-organizing convex hull formation, including an general outline of runtime analysis.","tags":["programmable-matter","convex-hull","distributed-algorithms","computational-geometry"],"title":"Convex Hull Formation for Programmable Matter","type":"event"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"In this two-player, cooperative, escape-the-room-like adventure, players take the roles of the Librarian and the Explorer. The two begin the game stranded in an unspecified snowy region, and upon discovering and entering a foreboding castle, they are knocked out and placed in separate rooms, connected only by a pair of walkie-talkies. The Librarian is primarily responsible for supplying information to the Explorer, who in turn navigates deadly traps and dimly lit mazes to reach new areas. By piecing together visual clues from both players' environments, puzzles are solved cooperatively, opening doors to new challenges.\nFor a free-to-play game, this was a surprisingly enjoyable and well-constructed experience (albeit a relatively short one, with an imperfect run taking roughly two hours). The crux of the gameplay rests on using voice-only communication to navigate inherently visual puzzles, which are fairly high-quality. Each puzzle balances complexity with difficulty in a pleasing way, and remains sufficiently independent of the rest, ensuring that each sequence is fresh and surprising. Even so, the overall experience was cohesive, rewarding attention to detail even when the details weren\u0026rsquo;t immediately relevant. Making the roles unique gives the game replay value as well; even though both players know the puzzle solutions after one successful run, switching roles gives a satisfying \u0026ldquo;ah, that\u0026rsquo;s what you were confused about!\u0026rdquo; kind of feeling.\nThe graphics are lacking in polish, but this is hardly a complaint given the game is free. In some senses, the lower quality textures add to the experience; I don\u0026rsquo;t really like horror games, but the use of creepy atmospheric elements and the ever-present sense that my partner was in danger was enough to create the right amount of suspense.\nMy real complaints are lodged against the bugs we encountered in our play-through, which (as of Update Five) required my Explorer to kill himself so we could restart from the checkpoint. This sort of broke the feeling of the overall experience, as death became a necessary means to an end instead of something worth fearing.\nFinally, as a matter of opinion and not of critique, I wonder if the story could have offered any more resolution than what was hinted at in the final theatre sequence. Who was the shadowy figure that placed us here? What drives it to such strange games of mind-over-matter? And what does it want with the one left behind?\nBugs As of Update Five, the introductory video has audio buffering issues. The chess puzzle has a couple bugs: the librarian often drops the film reel for no reason, and it is possible to get the film reel to play its spinning animation on the table itself if the Explorer applies the power too early.\n","date":1500231600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1500231600,"objectID":"b457ef23c9fd4c8442fa65a1c3bc9e79","permalink":"https://jdaymude.github.io/review/videogame-we-were-here/","publishdate":"2017-07-16T12:00:00-07:00","relpermalink":"/review/videogame-we-were-here/","section":"review","summary":"You and a friend play as the Librarian and the Explorer, trapped in different areas of a castle with a series of puzzles standing between you and escape. Playing on different screens, communication is key to finding solutions, but a growing sense of menace rushes clear decision making. **7 / 10**.","tags":["co-op","atmospheric-horror","escape-the-room","puzzle","free-to-play","first-person"],"title":"We Were Here","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"This book is an informative, gospel-based discussion of marriage based on a sermon series Keller gave in 1991. Rooted in equal parts theology, pastoral experience, and lives lived as husband and wife, the Kellers address topics ranging from the vision of a Christian marriage to spouses' individual relationships with Jesus to singleness to sex and beyond. Their clarity and simple speech make accessible the depth of their study and wisdom, while their anecdotes offer the humor and practicality necessary to understand these truths against the backdrops of our own interactions with married life. The main text is well attended by footnotes, which often point to helpful resources and candid insights. But underlying every discussion is the constant call back to the very nature of God, and that focus allows anyone — teens, singles, marrieds, widows, or divorcees — to learn something from this book.\nI came to this book during a time of pre-engagement, searching for answers I didn\u0026rsquo;t have questions for, laden with a sense of how much I didn\u0026rsquo;t know but needed to know before diving into a lifetime of relationship. The Kellers' focus on the gospel, though elementary, provided the logical, relational, and structural basis I could plant myself on while seeking answers in the rest of their writings. While \u0026ldquo;Some Practical Counsel for Marriage Seekers\u0026rdquo; (p. 237–249) offers a comprehensive list of things to think about when one finds themselves in the stage I\u0026rsquo;m in, I found myself gravitating more towards the theoretical, conceptual constructs around marriage: the commitments to sacrificial love with justifications fleshed out beyond \u0026ldquo;because Jesus sacrificed\u0026rdquo;; a discussion of gender differences while using scalpel-like precision to cut away the cultural baggage in tow; and a beautiful image of striving towards our true selves as an answer to the day-to-day frustrations encountered in living so intimately with another messy, broken human.\nThe most radical idea for me is a consequence of eternal commitment: in marriage, the frustrations and shortcomings of ourselves and our partners are entirely effects of sin which obscure the true nature of a person, but it is that true version which we bond ourselves to in marriage. Some scattered quotations on the matter:\n Within this Christian vision for marriage, here\u0026rsquo;s what it means to fall in love. It is to look at another person and get a glimpse of the person God is creating, and to say \u0026ldquo;I see who God is making you, and it excites me! I want to be part of that. I want to partner with you and God in the journey you are taking to his throne. And when we get there, I will look at your magnificence and say, \u0026lsquo;I always knew you could be like this. I got glimpses of it on earth, but now look at you!'\u0026rdquo; Each spouse should see the great thing that Jesus is doing in the life of their mate through the Word, the gospel.\n— The Meaning of Marriage, page 132.\n If you don\u0026rsquo;t see your mate\u0026rsquo;s deep flaws and weaknesses and dependencies, you\u0026rsquo;re not even in the game. But if you don\u0026rsquo;t get excited about the person your spouse has already grown into and will become, you aren\u0026rsquo;t tapping into the power of marriage as spiritual friendship. The goal is to see something absolutely ravishing that God is making of the beloved. You see even now flashes of glory. You want to help your spouse become the person God wants him or her to be.\n— The Meaning of Marriage, page 134.\n \u0026hellip;What keeps the marriage going is your commitment to your spouse\u0026rsquo;s holiness. You\u0026rsquo;re committed to his or her beauty. You\u0026rsquo;re committed to his greatness and perfection. You\u0026rsquo;re committed to her honesty and passion for the things of God. That\u0026rsquo;s your job as a spouse. Any lesser goal than that, any smaller purpose, and you\u0026rsquo;re just playing at being married.\n— The Meaning of Marriage, page 135.\n While I\u0026rsquo;m not entirely in agreement with the handling of gender norms in this book (though they are still more progressive than one might expect), many other ideas were very helpful. I could see myself coming back to these ideas time and time again to get a healthy dose of perspective in the midst of my laughable, honest, heart-wrenching attempts at knowing and being known, loving and being loved. But for now, this has given me a little more confidence to take the first step.\n Many people have asked me \u0026ldquo;How can you tell whether you\u0026rsquo;ve got a friendship on which you can base a marriage?\u0026rdquo; The answer that Kathy and I have always given is this. When you see the problems in each other, do you just want to run away, or do you find a desire to work on them together? If the second impulse is yours, then you have the makings of a marriage. Do you obsess over your partner\u0026rsquo;s external shortcomings, or can you see the beauty within, and do you want to see it increasingly released? Then move forward. The power of truth that marriage has should hold no fear for you.\n— The Meaning of Marriage, page 159.\n ","date":1498935600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1498935600,"objectID":"1a1f2318de53eee52f70052b6dca3892","permalink":"https://jdaymude.github.io/review/book-the-meaning-of-marriage/","publishdate":"2017-07-01T12:00:00-07:00","relpermalink":"/review/book-the-meaning-of-marriage/","section":"review","summary":"This informative, gospel-based discussion of marriage deals equally in theology, pastoral admonition, and lived experience. At its core, this book frames marriage as one of many ways to reflect part of God's nature. While there are several normative views taken here that are worth discussing or disputing, many of the ideas presented were very helpful to me in a time of pre-engagement and discernment. **8 / 10**.","tags":["marriage","christianity"],"title":"The Meaning of Marriage","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["book-review"],"content":"This story is a powerful one, using Israel at the time of Jesus not as a backdrop but as a fully manifested world. Daniel, a teenager by our standards but a grown man by theirs, makes a vow to live and to die for God\u0026rsquo;s Victory, a victory he believes can only be achieved when the despised Romans are driven from their land. His desire for his people to be free quickly and characteristically becomes marked by an intense hatred for the Romans, and this hatred becomes the very fabric of his existence. However, as his friendship with scholarly twins Joel and Thacia develops and he adopts the responsibility of caring for his sister, he bruises himself against the rigidity of his own resolve, all the while being lured inexplicably to the words of the teacher Jesus. The tension between his longing for the destruction of the oppressor and Jesus\u0026rsquo;s countercultural message of a Kingdom already come wage a war in Daniel\u0026rsquo;s mind as he gathers recruits to fight for The Cause. But it requires everything that Daniel had put his hope in — The Cause, his self-sufficiency, and his hatred — to fail him before he encounters Jesus radically and transformatively, giving him a way to be at peace with everything he had run from and with everything he would now live into.\nReading this book made me feel a kind of pained longing that I don\u0026rsquo;t usually feel. I read it in a time of my life marked by dryness: the absence of a pulsing, vibrant relationship with God. And every time Speare depicted Jesus speaking to the children, whispering to the crippled, or touching the lame, my heart ached. I began to crave that Jesus, the giver of life and hope to the lonely and rejected. I wanted so badly to see him more — much more than Daniel did most of the time, which left me frustrated in watching Daniel accidentally but continuously perpetuate the very brokenness that haunted him instead of turning to the one that breaks every chain.\nAs frustrated as I was with Daniel, it\u0026rsquo;s clear that the Jews of Israel were much more frustrated with Jesus. The Zealots wanted him to repel the forces of Rome, but he would not fight. The people of Capernaum wanted him, but not all understood him. The crowds wanted to crown him king, but instead he slipped away into the hills at night to pray. And yet, he upheld that the Kingdom of Heaven had come. While much of the \u0026ldquo;history\u0026rdquo; is familiar and biblical, The Bronze Bow provides a window from which to watch people grapple with their own expectations as they looked for deliverance from a situation they deemed \u0026ldquo;all wrong,\u0026rdquo; \u0026ldquo;backwards,\u0026rdquo; and \u0026ldquo;not what God would want.\u0026rdquo; I think there\u0026rsquo;s an important lesson to be learned there.\n \u0026ldquo;If he is the Messiah, how soon will he lead us against the enemy?\u0026rdquo; Simon walked on for a time without answering. Finally, he spoke. \u0026ldquo;He will never lead us against Rome, Daniel. I have given up all hope of that.\u0026rdquo;\n[\u0026hellip;] \u0026ldquo;Then why do you stay with him?\u0026rdquo; All the boy\u0026rsquo;s bitterness broke through the reproach.\n\u0026ldquo;Where else could I go?\u0026rdquo; Simon answered.\n\u0026ldquo;What has he offered you that is worth more than Israel\u0026rsquo;s freedom?\u0026rdquo;\n\u0026ldquo;He has offered me the kingdom.\u0026rdquo;\nDaniel\u0026rsquo;s anger was rising. \u0026ldquo;When do you think you\u0026rsquo;ll have this kingdom?\u0026rdquo;\n\u0026ldquo;You will not understand this,\u0026rdquo; said Simon. \u0026ldquo;In a way, I have it already.\u0026rdquo;\n\u0026ldquo;That\u0026rsquo;s fine!\u0026rdquo; the boy\u0026rsquo;s scorn was close to tears. \u0026ldquo;You have the kingdom! You can shut your eyes while all around you–\u0026rdquo;\n\u0026ldquo;I have not shut my eyes,\u0026rdquo; said Simon. \u0026ldquo;I know well enough that nothing in Israel is changed. But I know that it will be, even if I never live to see it with my own eyes.\u0026rdquo;\n\u0026ldquo;Listen to me, Daniel,\u0026rdquo; he went on. \u0026ldquo;You\u0026rsquo;ve seen him caring for those people — the ones so low that no one, not I or anyone else, cared what happened to them. When I see that, I know that the God of Israel has not forgotten us. Or why would He have sent Jesus to them, instead of to the rich and learned? Like a shepherd, he says, who will not let any of his sheep be lost. I\u0026rsquo;m a poor man, and ignorant, but I know now that with a God like that I am safe.\u0026rdquo;\n[\u0026hellip;] \u0026ldquo;What has he done to prove it? How do you know you\u0026rsquo;re not risking your life for nothing?\u0026rdquo;\n\u0026ldquo;We can never know,\u0026rdquo; Simon answered slowly. \u0026ldquo;God hides the future from man\u0026rsquo;s eyes. We are forced to choose, not knowing. I have chosen Jesus.\u0026rdquo;\n— The Bronze Bow, pages 243–244.\n ","date":1484766000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1484766000,"objectID":"d478ed85b05fd2c034d36173bef867e0","permalink":"https://jdaymude.github.io/review/book-the-bronze-bow/","publishdate":"2017-01-18T12:00:00-07:00","relpermalink":"/review/book-the-bronze-bow/","section":"review","summary":"Set in Israel at the time of Jesus, _The Bronze Bow_ follows the lives of several Jewish youths as Roman oppression bends and shapes their adulthood. When Jesus proclaims a victory and kingdom that has already been established instead of catalyzing a revolt against Rome, the characters and readers alike must grapple with what to do when Jesus does not fit their expectations. **8 / 10**.","tags":["coming-of-age","christianity","historical-fiction"],"title":"The Bronze Bow","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Note: This review reflects the state of Heroes just after the Nexus Challenge and the Feast of the Winter Veil 2016.\nHeroes of the Storm is a MOBA that felt fresh and exciting at the time of its debut, pitting itself against the genre giants Dota 2 and League of Legends. It offered many maps with varying level design and side objectives which added to the standard formula of tower/base pushing, and — if nothing else — provided Blizzard fans a battleground on which characters from all their favorite games could slash, shoot, claw, hook, and magic their way to victory.\nHeroes does many things well. Its gameplay is, at worst, a well polished MOBA experience. At best, teams move between mercenary camps, team fights, and side objectives with fluidity, emphasizing just how natural the game has made it for players to act as a unit, rather than individuals. XP and levelling is done as a team, so excessive farm management or kill-stealing are nonfactors. Mounts allow for quick traversal of the map, which is an engaging alternative to stocking up on teleport scrolls in fear of not being able to assist your team in times of need (Dota 2) or, even worse, walking on foot back to the action after every death (Overwatch). In a similar vein of encouraging cooperation and limiting toxicity, the lack of an all-chat stops players from flaming their opponents. Aesthetically, every character is reconstructed with love and integrity to their original game representations, and the worlds, music, and announcers feel right at home in the Blizzard universe.\nPlayer progression is satisfactory. In what effectively reduces to grinding, players gain XP for their account and per hero by playing matches. A small amount of gold is also earned at the end of each match, and can be used to buy heroes from the roster and certain items from the shop. Quests provide a more substantial source of gold revenue, but also err on the side of grinding instead of skill. Compared to compendium challenges in Dota 2 which push the player to actually do something (e.g., \u0026ldquo;stun for a total of x seconds\u0026rdquo;), \u0026ldquo;play 8 games\u0026rdquo; feels like a grab for time. Still, the promise of being able to unlock the full roster of heroes and a limited variety of cosmetics (e.g., a hero\u0026rsquo;s \u0026ldquo;master skin\u0026rdquo; at level 10) offers some reward for an otherwise repetitive structure.\nRepetition is hardly the mark of a bad game, however. Instead, Heroes fails most notably in its inability to provide the player with a meaningful representation of what all that repetition has summed to. The statistics hardly even deserve that name; they simply count how many games and kills a player has achieved with each hero, and win rates per map. Match histories only display whether it was a win or a loss, with no details on how the player performed, what talents were selected, or even the gamertags of the other players involved. There is no doubt in my mind that this data is available to the developers (as such data is often a driving force in informing hero balances), so including it in the UI seems like an obvious area of needed improvement for the Heroes team.\nToday, in a post-Overwatch, MOBA-crowded gaming scene, Heroes struggles to find its place. Several of its most innovative elements such as mounts and talents have been copied by other games (Paladins and Dota 2: The New Journey, respectively). Its \u0026ldquo;statistics\u0026rdquo; are laughably barebones, especially for a Blizzard game. Yet its gameplay remains highly polished and its community relatively non-toxic, establishing Heroes as a place that\u0026rsquo;s inviting to return to from time to time.\n","date":1483470000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1483470000,"objectID":"55071802406954e80cc42fe539c638be","permalink":"https://jdaymude.github.io/review/videogame-heroes-of-the-storm/","publishdate":"2017-01-03T12:00:00-07:00","relpermalink":"/review/videogame-heroes-of-the-storm/","section":"review","summary":"Blizzard's MOBA is certainly not the genre's heavyweight, but adds friendly and innovative elements that were quickly copied by its contemporaries. If nothing else, the Nexus is a Blizzard fan's dream battleground on which their favorite characters can slash, shoot, claw, hook, and magic their way to victory. **7 / 10**.","tags":["moba","free-to-play"],"title":"Heroes of the Storm","type":"review"},{"authors":["Sarah Cannon","Joshua J. Daymude","Dana Randall","Andréa W. Richa"],"categories":["research"],"content":"Related Press SSS 2020 Report 2: Compression of programmable matter. Laurent Feuilloley. Discrete Notes, November 2020. Opening Paths to Progress with Programmable Materials. Joe Kullman. ASU Now, March 2017. (Also featured in ACM TechNews). A Creeping Model of Computation. Dick Lipton and Ken Regan. Gödel’s Lost Letter and P=NP, September 2016. ","date":1469404800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1469404800,"objectID":"e52152a46ec669c6b6998991bb93cae9","permalink":"https://jdaymude.github.io/publication/cannon2016-compression/","publishdate":"2016-07-25T00:00:00Z","relpermalink":"/publication/cannon2016-compression/","section":"publication","summary":"We introduce the stochastic approach to self-organizing particle systems in which we use a Markov chain to describe how the system evolves over time as particles move randomly. We show that by biasing particle moves towards positions where they have more neighbors, the system converges to compressed states; we also show that when this bias is not strong enough, the system converges to expanded states.","tags":["programmable-matter","compression","markov-chains","distributed-algorithms"],"title":"A Markov Chain Algorithm for Compression in Self-Organizing Particle Systems","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1464652800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1464652800,"objectID":"fc6454f56c1b193e1ab33544a1d21b29","permalink":"https://jdaymude.github.io/publication/daymude2016-undergradthesis/","publishdate":"2016-05-31T00:00:00Z","relpermalink":"/publication/daymude2016-undergradthesis/","section":"publication","summary":"This undergraduate honors thesis treats the problem of compression in self-organizing particle systems, where the goal is to gather particles as tightly together as possible. Three algorithms are proposed and compared with rigorous proofs and simulations.","tags":["programmable-matter","compression","markov-chains","distributed-algorithms"],"title":"Compression in Self-Organizing Particle Systems","type":"publication"},{"authors":["Joshua J. Daymude"],"categories":["videogame-review"],"content":"Sputnik Eyes is a puzzle game adorned with a playful atmosphere in which you\u0026rsquo;re tasked with guiding exploratory colored robots to matching color positions in order to discover new planets. The aesthetic is greatly inspired by space exploration and the mathematical field of graph theory, which delivers enjoyable mechanics for mathy logic puzzles in minimalist artwork and easily understood controls. The UI is full of adorable artwork, reminiscent of cartoon depictions of outer space that might decorate a child\u0026rsquo;s bedroom. The soundtrack is similarly dreamy, leveraging a handful of light, instrumental electronic songs on rotation to keep any one from becoming overplayed.\n Although the levels vary in the layout of finishing positions and the number of robots, gameplay does have the potential to get somewhat repetitive, which I feel the game designer — Shelly Alon, who developed this game singlehandedly — was likely aware of. Completed levels form constellations (out of planets, not stars), and the game ends after just 65 planets — setting itself apart from content-vomiters like Candy Crush — and doesn\u0026rsquo;t force players to replay levels extensively to achieve some unlikely high score. Instead, there are challenges to complete levels under a (generous) time limit, and to do so in the minimum possible number of robot moves, providing a shallow level of replayability for those who want it.\n All in all, Sputnik Eyes is a satisfying puzzle game resulting from heartfelt, thoughtful work that turns a hopeful eye to what lies beyond our atmosphere.\n","date":1460574000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1460574000,"objectID":"3313ff46af336c9120325dccae6d56dc","permalink":"https://jdaymude.github.io/review/videogame-sputnik-eyes/","publishdate":"2016-04-13T12:00:00-07:00","relpermalink":"/review/videogame-sputnik-eyes/","section":"review","summary":"This playful puzzle game mixes graph theory with space exploration and minimalist art. The intuitive controls and thematic music bolster this game's short 65-level experience where it ends with clean finality. **6 / 10**.","tags":["casual","puzzle","space"],"title":"Sputnik Eyes","type":"review"},{"authors":["Joshua J. Daymude"],"categories":["research"],"content":"","date":1459965600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1459965600,"objectID":"5810f72abd3314e53315e9db07aacdbd","permalink":"https://jdaymude.github.io/event/2016asu-undergradthesis/","publishdate":"2016-04-06T11:00:00-07:00","relpermalink":"/event/2016asu-undergradthesis/","section":"event","summary":"In this undergraduate thesis defense, I give three algorithms for compression in the amoebot model: local compression, hole elimination, and $\\alpha$-compression. Formal analysis and simulations are presented.","tags":["programmable-matter","compression","markov-chains","distributed-algorithms"],"title":"Compression in Self-Organizing Particle Systems","type":"event"},{"authors":null,"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"f26b5133c34eec1aa0a09390a36c2ade","permalink":"https://jdaymude.github.io/admin/config.yml","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/admin/config.yml","section":"","summary":"","tags":null,"title":"","type":"wowchemycms"}]