Create a dynamic web page that uses data to change its presentation
Images (from left): Generative Splines Hyper Glu; Arc Bicycle Delft University of Technology (2016); The Sherwin Series Joelle Dietrick (2011); Heydar Aliyev Centre Zaha Hadid (2012)
Learning Objectives
Students who complete this assignment will be able to:
- Describe how to use data to create generative processes in software, design, architecture, etc.
- Compare outcomes of generative processes across disciplines.
- Write pseudo code and build a prototype to plan and develop a web application.
- Use HTML, CSS, Bootstrap, and JS build final application.
- Design an identity for the project that communicates a theme or concept
Preparation
Complete the following to prepare for this assignment. See Resources for additional information as needed.
- Codecademy: JS 3-1 Functions (1-7)
- Codecademy: JS 4-1 Scope (1-4)
- Codecademy: JS 5-1 Arrays (1–7)
- Codecademy: JS 6-1 Loops (1–7)
- Javascript.info JS Comparison, Logical operators, Functions, Loops: while and for
This assignment asks you to create a web page that can generate new iterations of itself based on some changeable data source. This could be input from the user, other available data (e.g. time, location, etc.), or pure randomness.
Nearly every software or dynamic website generates their interfaces using data. Even a boring shopping website uses cookies to identify and customize pages for users (regardless who stands to benefit).
This process is evident in many other "design" contexts. For example, Generative Design is a related cultural trend that, similar to data-driven websites, uses coded rules and algorithms to create (and recreate) concepts and forms for architecture, objects, behaviors, animations, games, and much more. This diagram from, Generative Design: Visualize, Program, and Create with JavaScript in p5.js by Groß, Bohnacker, and Laub, shows how these processes can create new iterations, using varying degrees of input from the creator, to ideate or solve specific design or aesthetic problems. Regardless of your approach, your project should mimic or somehow find inspiration in these processes, to reflect your own thinking on the subject.
- Fork this repository and clone it to your
critical-web-design
folder on your machine.
- Develop a concept for your project. Consider the above prompt, as well as Examples of randomness below.
- Use Figma to create a wireframe and design iterations for your project.
- Show the different stages of the user experience or how your app changes depending on the content.
- Start with desktop design, then create the mobile layout once you have made a few iterations.
- Use Figma to diagram any data transformations or flowcharts as needed.
- Begin the code portion by writing out the pseudocode for your project. See this activity for practice. Save the pseudocode in a comment in your Javascript.
- Use HTML, CSS, and JS to code your design inside
index.html
- Use Javascript variables, conditional logic, loops, etc. to somehow change the page every time it loads.
- Use images, other media, or code libraries as needed.
- Save and refresh your work in the browser often to see your changes.
- Commit changes regularly.
- Confirm valid HTML and CSS (?)
- When finished, push, publish, and post your project. Make sure to include a link to your Figma designs in the Moodle post.
Grading
Points | Category | Description |
---|---|---|
4 | Concept | Idea is original and evokes deeper thinking on the subject. |
4 | Design | Overall quality and use of design principles; Graphics are consistent, layout displays clear information hierarchy |
4 | Execution | Concept and design is well-executed, is usable, and functions as intended |
4 | Instructions | Project is online, accessible, and linked from Moodle by the deadline |
4 | Validation | Valid HTML and CSS |
20 | Total |
- Chris Baker, Mike Lacher, and Richard Baker Troll the NSA (2013)
- Rafaël Rozendaal Abstract Browsing (2014)
- Colleen Josephson and Kyle Miller endless.horse (2015)
- Mark Sample Two Moji (2018)
- Tero Parviainen How Generative Music Works
- Dan Kurtz Binky (2017)
- Kevan Davis eBay Feedback Generator (2005)
- Ben Grosser Scaremail
- 0x72 pixeldudesmaker (example of sprite)
- eBay Feedback Generator (2005)
- Hacker Simulator
- itadakimasu.app/
- Tarot-o-bot (2019)
- Hartmut Bohnacker Site Shaker (2018)
- Other Critical Web Design / Radical Software examples tagged with #generative or #remix
- "Generative Design Software Will Give Designers ‘Superpowers’", video (2:18),
- "How Will Generative Design Impact Architecture?"
- and more from this Random Article Generator
- faker.js and hosted version, and similar projects
- public-apis, apilist.fun, and No Auth APIs - free APIs for software and web development. For example:
- codepen.io Random Article Generator
- https://github.com/omundy/learn-javascript/search?q=.random
- Also see, Data Culture: Randomness Activity