CS 491 / DES 350 Creative Coding 1

Fall 2017
ERF 2068
842 W. Taylor
Daria Tsoupikova
Media Design
Peter Hanula
Computer Science

Description and objectives
Creative Coding is a new interdisciplinary course organized by the Department Computer Science and the School of Design, which investigates how contemporary technologies can inspire novel forms of creative practice. It introduces software programming and creative coding techniques within the context of the digital media design. Media artists and designers have been utilizing computers for innovative creative expression since the late 1960s; the recent proliferation of low-cost consumer grade devices with advanced sensing, display, and computing capabilities, such as smart phones, Virtual Reality, drones, 3D printers, and microcontroller kits, marks possibly a new era of creative exploration. The field of “creative coding” emphasizes the goal of expression, rather than function, and creative coders combine computational skill with creative work in a variety of media. This is a project-based course designed to provide an introduction to current creative coding programming paradigms, and investigate the challenges and opportunities that emerge when using new technologies for expressive purposes.

The course will capitalize on the diverse backgrounds of the students in the class (design + computer science) and two required projects will be collaboratively developed in small teams. Each of these projects provides an introduction to creative coding programming paradigms for virtual reality platforms and for the web (using Javascript, Autodesk Maya, Unity3D, C#, D3, Processing, three.js etc.). The first project will focus on creative programming for a high resolution, largest in the world, virtual reality environment CAVE2 in the Electronic Visualization Laboratory (EVL). The second project will investigate interactive visualiation for public outreach using the web platform. To contextualize these projects, we will read widely from both seminal texts in multimedia and recent proceedings from computer science and media arts conferences, such as ACM SIGGRAPH and the International Symposium on Electronic Art (ISEA).

This course will introduce a variety of concepts in programming, from the basics of coding and scripting to more complex programming techniques and investigate their applications to create critical, experimental, analytical, and visualizing design. Participants will develop new skills and produce interactive projects using 3D, visualization, virtual reality, multimedia and audiovisual media. This course assumes that students have no prior programming experience but an enthusiasm to study code and scripting to use computation to extend inquiry and exploration in media and society. .

Module 1: Introduction to VR and Unity3D

Week 1

Course overview & logistics: syllabus; schedule.
Content introduction: intro to course.
Team formation: questionnaire.
Intro to 3D modeling (models, materials, textures, editing, export).

Readings + Videos:

Jeffrey Shaw, The Legible City, 1988-91.
Maurice Benayoun, World Skin: A Photo Safari in the Land of War, 1997;
Presentation at Tools for Propoganda, 2000.
Skip Rizzo, Medical Virtual Reality, 2014;
Virtual Reality Applications to Address the Wounds of War, 2013.
Hunter Hoffman, Virtual Reality Pain Reduction, 2015;
SnowWorld, 2003.
Marcos Novak, Liquid Architectures in Cyberspace, 1991.
Char Davies, Osmose, 1995.

SIGGRAPH 2017 VR Village and VR Theater
VR Village website

Maya 2017 Essential Training with George Maestri on Lynda.com (1, 2)

Assignment 1

Complete the Maya “still life” assignment: Maya Assignment, Maya scene file.

Week 2

Intro to 3D modeling Readings + Videos:

Maya 2017 Essential Training with George Maestri on Lynda.com (3)

Assignment :

Complete the Maya “still life” assignment: Maya Assignment, Maya scene file.

Week 3

CAVE2 demonstrations with Arthur Nishimoto
Polygonal modeling
Shading, Materials, Textures

Readings + Videos:

CAVE2 Informational Video
Paper City Vimeo
Meats Meier
Pixar Animation- Luxo Jr.
Timothy j. Reynolds
Paul Debevec, Light Stage X Smithsonian 3-D portraits of President Obama
Skin Stretch: Simulating Dynamic Skin Microgeometry SIGGRAPH 2015
The Digital Emily Project

Maya 2017 Essential Training with George Maestri on Lynda.com (4, 5, 6, 10, 11, 12)


Assignment 2 Polygonal Modeling

Week 4

Intro to Unity (unity overview, editor, primitives, materials, textures, terrain, prefabs)

Intro to Unity

Readings + Videos:

Unity 5: 3D Essential Training by Adam Crespi/ Ch. 1, 2, 4
Unity Manual
Unity tutorials

Assignment :

Team assignments
1. Meet with your teams to discuss project ideas.
2. As a team, post your three or four best ideas (one idea per team member) on Google Drive. Use a single PDF file for a and b below. For each idea:
   a) describe the idea in a paragraph or two;
   b) provide a simple sketch of the idea (using your favorite design software or even just a photo of a drawing).

Week 5

Intro to Unity (unity overview, editor, primitives, materials, textures, terrain, prefabs)

Intro to Unity

Readings + Videos:

Unity 5: 3D Essential Training by Adam Crespi/ Ch. 1, 2, 4
Unity Manual
Unity tutorials

Assignment :

Project 1
Team projects (4) / Refined concepts with storyboards

Week 6

Intro to Scripting (variables, functions, triggers, collision detection, sounds, colors)

Intro to Scripting

Concept Presentation

Readings + Videos:

Unity 5: 3D Essential Training by Adam Crespi/ Ch. 3, 7
Unity Scripting / Ch. 1-9

Assignment :

Project 1 Concept Presentation

Week 7

Project 1 Team Concept Presentations

Unity Interaction, Materails, Colors

Intro to Interaction

Readings + Videos:

Unity Scripting / Ch. 11-20

Assignment :

Project 1 - Unity environment/Assets/Interaction - part 1


Week 8

Unity components, Prefabs, Instantiate

Interaction, Prefabs, Components


Readings + Videos:

Unity Scripting / Ch. 21-28

Assignment :

Teams / CAVE2 project concept / Assets / Unity scene


Week 9

CAVE2 testing with Arthur Nishimoto

Teleport, Collisions, Parenting


Testing in CAVE2

CAVE2 Unity Tutorial

Download Unity template for CAVE2 Environment
CAVE2 Unity tutorial documentation

Readings + Videos:

CAVE2: A Hybrid Reality Environment for Immersive Simulation and Information Analysis


Project 1

Week 10

Testing in CAVE2

CAVE2 slides

Readings + Videos:

Assignment :

Project 1

Week 11

Project 1 Review - November 6

Team Presentations in the CAVE2

Assignment :

Project 1 Submission Guidelines

Examples from Leonardo


Team 1 - Caroline, Emma, Simone, Tommaso
Typography Museum VR [report] [video]

Team 2 - Alain, Madhu, Luis, Eric
Birdy [report] [image]

Team 3 - Jeff, Jacob, Matthew, Dania
Between the Two Bedrooms in Arles: A Brief History of Van Gogh [report] [video]

Team 4 - Valeria, Dat, Benjamin, Lubna
SOUNDSCAPE [report] [video]

Team 5 - Steen, Alex, Joshua, Aloysius
Word Search [report] [video]

Team 6 - Kaily, Kimani, Kyra, Brandon
The Chicago Exhibition: Rich Vs. Poor [report] [video]

Team 7 - Gabe, Vanessa, Hassan, Ewelina
Deforestation [report] [video]

Team 8 - Tyanna, Noah, Asha, Namaswi
Chicago Fire [report] [video]


Module 2: Introduction to Data Visualization and Javascript

Week 12

November 13 Field Trip to Shirley Ryan AbilityLab
Multi-user Virtual Training Environment for Upper Extremity Therapy in the Home
Altering Activation Patterns in the Distal Upper Extremity After Stroke

Intro to D3.js

Code examples and references from class

MDN SVG reference
MDN CSS reference

Assignment 4:

Assignment 4 Visualization with D3
Essential Training for Data Scientists by Emma Saunders on Lynda.com ch. 1-4
Atom text editor download
Firebug.com download
D3 on GitHub
D3 examples

Readings + Videos:

Otl Aicher

Week 13

Manipulating data in D3


Project 2

Readings + Videos:

Essential Training for Data Scientists by Emma Saunders on Lynda.com ch. 5-7

Example datasets



Team 1 - Hassan, Alan, Gabe, Tyanna
Medicare [report] [code]

Team 2 - Simone, Tommaso, Vanessa, Dat
TERREMOTI [report] [code]

Team 3 - Ben, Kyra, Jeff, Josh
Mass Shootings in the US (1966-2017) [report] [code]

Team 4 - Valeria, Alex, Luis, Namaswi
Wage Gap [report] [code]

Team 5 - Matthew, Aloysius , Asha, Emma
UFO sites [report] [code]

Team 6 - Brandon, Eric, Kaily, Jacob
Chicago Energy Usage [report] [code]

Team 7 - Madhu, Caroline, Dania, Steen
Time’s Person of The Year [report] [code]

Team 8 - Ewelina, Noah, Kimani, Lubna
Chicago Crimes [report] [code]



Week 14

Interaction and Animation in D3

Code examples from class

interactive example from class
Hover to show name: http://jsbin.com/vewamu/edit
Click buttons to move circle: http://jsbin.com/xekiri/edit
Constantly moving circle: http://jsbin.com/beguxa/edit
Easing function examples: http://bl.ocks.org/mbostock/248bac3b8e354a9103c4
Complete list of HTML DOM events: https://developer.mozilla.org/en-US/docs/Web/Events


Project 2

Readings + Videos:

Essential Training for Data Scientists by Emma Saunders on Lynda.com ch. 7-10
Block Builder - in browser code editor

Data visualization inspiration

Week 15

Final Presentations are on December 4


Behling Jacob, Bernal Valeria, Buenaventura Kyra, Cowley Emma, Haugsted Steen, Howard Kile, Kandasami Madhu, La Alain, Martinez Vanessa, Moore T'yanna, Mui Gabe, Perez Noah, Rusek Ewelina, Schwarm Caroline, Smith Kimani, Spiroff Alex, Torres Jeff, Truong Dat, Whitehorne Asha   

Computer Science

Amico Simone, Chandarana Namaswi, Massari Tommaso, Azhari Dania, Cao Benjamin, Heilman Eric, Hernandez Luis, Kim Joshua, Krumwiede Matthew, Mirza Lubna, Paredes Aloysius, Pasha Hassan, Shaver Brandon

Required materials & software
— Laptop computer

— External hard drive to save your back up files. Students are required to store and backup their files appropriately and an additional data storage is strongly advised for back-up.

— D3.js (Download and install before Week 8).

Lab fee
There is a $125.00 required laboratory fee for this course, which is used for the course supporting materials, and supplies (copies, media storage, supplies for presentation etc.)
Evaluation and requirements
Your final grade will be based on your performance on the group project, evaluations of team member performance (peer evaluation), attendance and participation.

On-time class attendance is mandatory. It is not possible to make up or compensate for missed class sessions. More than two unexcused absences will result in a reduction of the final grade by one letter grade; with every additional unexcused absence, the final grade will drop by an additional grade. Some of the discussions and exercises are done and graded in-class so you must attend class to receive these points.

For best in-class participation, you should complete required readings and tasks before class (will be specified in the study guide in each module). Be prepared for a lot of hard work: be prepared to code, often, and much outside of the class. This course will be difficult but also very much in-depth and useful to prepare your creative portfolio.

There is a lot of self-study required as our lecture time limited as well as our lab time, and the goal is to maximize that time. Each session will have required pre-reading and post-reading. The instructor reserves the right to add online tutorials, lectures and video sessions to class lectures and homework.

You must submit all assignments via UIC Box unless otherwise instructed on the deadline specified for each assignment. Assignments must be professionally prepared with recommended computer applications. Unless otherwise stated, assignments must be submitted electronically to the UIC Box.

Projects more than 5 days late will not be accepted. Be sure to submit the work well ahead of due time. Excuses like website or computer error will not be accepted after the due date.

‘Incompletes’ will only be granted according to University policy.

A = Consistent growth as well as excellent work that consistently goes above and beyond what is required.
B = Above average growth as well as above average work.
C = Average growth as well as average work.
D = Dissatisfactory growth and incomplete work.
E = Dissatisfactory growth, incomplete work, and poor attendance.

The numeric breakdown for the final grade follows:

30% Project 1
20% Project 2
30% Shorter assignments
20% Attendance and participation

Any individuals with learning disabilities or special needs must make the instructor aware of them prior to the due date of the first major assignment. Those who require accommodations for access and participation in this course must be registered with the Disability Resource Center. Please contact DRC at 312/413-2183 (voice) or 312/413-0123 (TTY). http://www.uic.edu/ depts /oaa/disability_resources /contact.html

If you wish to observe your religious holiday, which is in the conflict with mandatory academic attendance, you should notify the instructor by the tenth day of the semester of the date on which you are requesting an absence.

You are responsible for understanding what constitutes academic dishonesty. Academic dishonesty is an extremely serious offense. All cases of academic dishonesty will be dealt with in accordance with the policies of the University as published in the Undergraduate Catalogue and the University of Illinois at Chicago policy on Academic Honesty at: http://www.uic.edu.ucat/cat1315archive/index.shtml

Recommend readings
ACM Transactions on Graphics (Proceedings of SIGGRAPH), 2017 and earlier. (Available from ACM through UIC digital library)
Leonardo, 2017 and earlier (Available from MIT Press through UIC digital library)
Proceedings of the International Symposium on Electronic Art, 2015 and earlier (Available online)
Selected readings from The New Media Reader, edited by Noah Wardrip-Fruin and Nick Montfort, MIT Press 2003.
Selected readings from The New Media Reader, edited by Noah Wardrip-Fruin and Nick Montfort, MIT Press 2003.
Peripheral Vision: Bell Labs, the S-C 4020, and the Origins of Computer Art, Zabet Patterson, MIT press, 2015.
Gödel, Escher, Bach: an Eternal Golden Braid, Douglas Hofstadter, Basic Books, 1991.
Unity Game Development Essentials Kindle Edition by Will Goldstone.
Unity 3D Game Development by Example Beginner’s Guide by Ryan Henson Creighton
Learning C# Programming with Unity 3D by Alex Okita.
Beginning Visual C# Express: A Computer Programming Tutorial by Philip Conrod and Lou Tylee.
No cell phone usage in the lab. You are responsible to turn your cell phone off prior to the class. No non-class materials loaded into the computers. No food or drink in the computer labs. No surfing the Internet during lectures. Reconfiguring the system on Cyber-Commons / CAVE2 unusable for other courses and may result in dismissal from the course.
Projects created in this course may be used by the Colleges for purposes of promotion for students, the School or the University in general. The School may also use these materials for instructional purposes in future courses.


Students’ group projects, Fall 2017

Class field trip to Shirley Ryan AbilityLab, the former Rehablitation Institute of Chicago (RIC) 11/13.

Between Two Bedrooms in Arles, by Jeff, Jacob, Matthew and Dania, is a virtual world inspired by Vincent Van Gogh famous ‘The Bedroom’ painting exploring Van Gogh history, life and art.

Gabe, Vanessa, Hassan and Ewelina created virtual environment to raise awareness about deforestation.

Typography Museum VR is a project that aims to create a new and interactive way to experience typography. It was developed by Caroline, Emma, Simone and Tommaso.

Tyanna, Noah, Asha and Namaswi created a virtual realtiy project “Fire and Architecture” to demonstrate how architectural styles changed due to the Great Chicago Fire (1871).

Kyra, Josh, Ben and Jeff developed a interactive application to visualize Mass Shootings in the US (1966-2017).

Kaily, Kimani, Kyra, and Brandon created a virtual reality environment that discusses the prevailing class gap in Chicago.

Alex, Valeria, Namaswi and Luis created an interactive platform to visualize the wage gap between men and women in the US.

​UFO ​sightings​ ​visualies over​ ​10,000​ ​reports​ ​gathered from​ ​the​ ​National​ ​UFO​ ​Reporting​ ​Center​ ​(NUFORC)that​ ​occurred between​ ​1910​ ​and​ ​2014​ ​in​ ​the​ ​US. It was developed by Aloysius, Matthew, Emma and Asha.

Kyle, Elizabeth, Beiruo created The Island of Dream, an interactive VR experience that makes uses of various particle effects.

Soundscape lets a user find synaesthetic connections between pitch and color. It was developed by Valeria, Dat, Benjamin and Lubna.

Alain, Madhu, Luis and Eric a virtul reality simulation studing real avian migration of birds.

Simone, Tomaso, Vanessa and Dat developed interactive data visualiation to present a histoty of earthquakes in Italy.

Dania, Caroline, MAdhu and Steen developed TIME's Person of the Year, an interactive tool to explores demographic world data of the person of the year since 1927.

Eweline, Noah, Kimani and Lubna developed an interactive visualization to represent Chicago Crime data.

Gabe, Alain, Tyanna and Hassan visualize different Medicare coverage within the United States in 2013-2015.