End-of-semester final project report from Week 13 on my journey to learn creative coding, as part of the University of Colorado Boulder’s “Professional Development in Computer Science” course.
Final Project Report: Creative Coding
Table of contents
Open Table of contents
Introduction
This project began with the vision of exploring creative coding using the JavaScript library p5.js. The original plan was to learn the fundamentals through structured tutorials, create at least 8-10 original coding sketches, maintain a GitHub pages website, write weekly updates, conduct at least 3 informational interviews with creative coders, and produce a reflective essay on the connection between code and drawing. The overall goal of the project was to merge my Fine Arts and Computer Science backgrounds, strengthen my ability to work in new media art contexts, and position myself professionally as a creative coder.
Background
The project was rooted in my long-standing interest in combining art and technology. While earning my CS degree in the CSPB program, I also completed a Fine Arts degree in Vienna, but I never carved out any significant time for creative coding. This semester was my opportunity to bridge those worlds. Professionally, creative coding aligns with potential future career paths in digital art, museum curation, interactive installations, and creative technology. Personally, it was a long-overdue goal to integrate technical and artistic skills.
Methodology, Materials, and Methods
I used the following resources for technical learning:
- The Coding Train - Programming with p5.js: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA
- Steve’s Makerspace - How to Code Generative Art: https://www.youtube.com/watch?v=ZiVWNAqLDwU&list=PLnJOmsprq3bE0QLbe7wZ8yb1-Dt0FBcP5
I followed along with the tutorials, coding in p5.js to practice fundamental skills. I documented my progress on my GitHub Pages website, which I built using the Astro framework (something I also learned during the first few weeks of the course).
Regarding professional development:
- I updated my LinkedIn, Handshake, and CV
- Polished my GitHub Pages website to make it a resource for future “learning in public”
- Reached out to professionals in creative coding and conducted 5 in-depth informational interviews
Results
On the technical side, I followed along with The Coding Train and Steve’s Makerspace tutorials for p5.js, coding alongside the videos to reinforce concepts. Through this process, I became comfortable with:
- Drawing and manipulating shapes
- Working with colors, gradients, and transparency
- Creating basic animations using the draw() loop
- Adding simple interactions (mouse and keyboard input)
Although I didn’t create original artwork this semester, I now have a strong foundation in p5.js and a list of future explorations, including integrating Arduino and webcam inputs for interactive projects. My GitHub Pages website currently serves as a blog documenting this learning process. My goal from September onwards is to add more in-depth project posts and original work to the blog.
Regarding professional development and informational interviews: This area became the core focus of my project. Over the semester, I conducted 5 in-depth informational interviews that gave me a clearer picture of the creative coding landscape and the variety of professional paths within it.
-
Joel Swanson - CU Boulder ATLAS Institute Joel, an artist and educator, directs the TYPO Lab, an experimental design lab exploring the technologies of language. His work ranges from linguistic sculptures to natural language processing applications, blending analog and digital methods. In our conversation, we discussed his perspective as a fine artist working among engineering colleagues in ATLAS, the creative possibilities of NLP in artistic contexts, and the importance of language as both a subject and medium. His approach affirmed for me that conceptual richness can coexist with deep technical craft.
-
University of Arts Linz - Time-Based and Interactive Media Arts Through my updated online presence, I was contacted about a teaching opportunity for their Intro to Creative Coding course. While the role ultimately went to someone with a more developed teaching plan, the experience gave me insight into Linz as a global hub for new media art (home to the Ars Electronica festival). I learned how Processing (rather than p5.js) is emphasized in their curriculum to prepare students for projects like Ars Electronica’s Deep Space 8K - a high resolution, large-scale projection environment. We also discussed their broader program, which integrates Arduino, Processing, sensors, and theory (history of media art, philosophy of technology, etc.). I also learned about an interesting new media art Master’s program offered at the same university, called Interface Cultures. This was an unexpected but valuable glimpse into how creative coding is taught at a high academic level.
-
Vidya Giri - Artist, Software Engineer, CSPB Alumna Vidya, a CSPB 2022 alumna, creates experimental websites, zines, and mixed-media works while holding a full-time tech job. She told me about her thoughts on the handmade web and encouraged me to see the browser itself as a creative medium (and even like a game engine already). She pointed me to online creative communities like are.na, and to alternative educational spaces like the School for Poetic Computation (SFPC). Her example showed me how one can balance commercial work with a vibrant personal art practice, and how to create art that spans multiple formats (e.g. a website, a physical book, an installation).
-
3e8 - Studio for Studio for Digital Art, Interactive Exhibits & Productions with Creative Technologies I had been following 3e8 on Instagram and reached out to learn about their practice. The studio specializes in interactive art for exhibitions, public spaces, concerts, etc. using technologies like vvvv (also used by Refik Anadol’s studio). They told me about starting the studio, including winning a grant from the Austrian Business Agency to develop VL libraries for vvvv, and their ongoing teaching at the NODE Institute (which offers online courses in vvvv, TouchDesigner, and more). The informational interview ended up turning into an actual job interview, when they invited me to interview for a junior creative producer role. The job involves preparing bids for European “tenders”, which are competitive calls for proposals, often with tight deadlines. Although my visa limitations unfortunately made the position unworkable for me, I gained first-hand insight into the business and production side of creative technology, and I even signed up for their upcoming beginner vvvv course from the NODE Institute in October.
-
Martin Grödl - Process Studio for Art and Design Martin co-founded Process after studying Media Informatics and later completing an art degree (from the same university where I studied Fine Arts in Vienna). His studio focuses on generative graphic design using Processing and p5.js, often producing work that evolves into multiple forms: posters, websites, interactive installations, etc. Martin has also been an active contributor to open-source Processing projects (through Google Summer of Code) and encouraged me to get involved with p5.js and open source contributions. He was candid about the financial realities of running a small creative studio, with the fluctuating workloads and reliance on freelance collaborators, and about his own balance between teaching (50% of his time) and studio work. His trajectory illustrated both the creative rewards as well as the practical challenges of sustaining a creative coding studio.
Project Assessments (Original Goals vs. Outcomes):
- 8-10 original sketches: not achieved - chose to focus on networking and online professional presence instead
- Weekly blog updates: achieved - documented progress consistently
- GitHub Pages website: achieved - site built and live
- 3+ informational interviews: exceeded - completed 5 interviews
- Reflective essay on coding and drawing: not achieved - a different kind of reflection is incorporated into this report
Reflection
I did not meet my original creative output goal, partly due to time constraints (full-time job, 3 CSPB summer classes, personal obligations), but also because I realized networking was a high-leverage activity for my career goals. The shift to professional development was intentional once I recognized that:
- Networking opens doors and exposes me to real-world workflows and opportunities.
- Many creative coding professionals combine teaching, freelance, and project-based work rather than relying on a single full-time role.
- To enter this field, both networking and a strong personal portfolio are essential. However, networking can lead to opportunities even while I’m still building up my portfolio.
This project gave me a better understanding of the creative coding ecosystem: creative studios, educational institutions, residencies, and open-source communities. I now have direct contacts, insights into how projects are produced, and inspiration for my own path forward.
Conclusion
Looking back, this project confirmed that creative coding is the space where my art and technology backgrounds intersect most meaningfully. While I didn’t produce original artworks this semester, I built up the technical foundations of p5.js, established professional connections, and learned how creative coders build sustainable careers.
Currently, I have a live GitHub Pages blog for “learning in public”, an expanded professional network, and a clear sense of where to focus next:
- Continue my technical growth in p5.js, Processing, and vvvv (taking an online class in October)
- Begin integrating physical computing (Arduino) and interactive media (webcam, sensors) into projects
- Grow my online presence through consistent blog posts and open-source contributions
In the future, I hope to transition toward a career where I can dedicate more time to creative work, teaching, and collaboration with interactive / digital art studios.
References
Project Tools & Frameworks:
- p5.js: https://p5js.org/
- Processing: https://processing.org/
- Astro framework: https://astro.build/
- GitHub Pages blog: https://catesc.dev/
- LinkedIn profile: https://www.linkedin.com/in/catalina-escalona/
Learning Resources:
- The Coding Train - Programming with p5.js: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA
- Steve’s Makerspace - How to Code Generative Art: https://www.youtube.com/watch?v=ZiVWNAqLDwU&list=PLnJOmsprq3bE0QLbe7wZ8yb1-Dt0FBcP5
- Groß, Benedikt; et al.: Generative Design: Visualize, Program, and Create with JavaScript in p5.js.
- Fry, Ben; Reas, Casey: Processing: A Programming Handbook for Visual Designers and Artists. Second Edition. Cambridge, 2014.
- Shiffman, Daniel: Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction. Amsterdam, Boston, 2015.
- Reas, Casey; McWilliams, Chandler; LUST: Form+Code in Design, Art and Architecture. New York, 2010.
- Shiffman, Daniel: The Nature of Code: Simulating Natural Systems with JavaScript. 2024.
- OpenProcessing: https://openprocessing.org/
- fxhash: https://www.fxhash.xyz/
- Patt Vira’s Creative Coding Tutorials: https://www.youtube.com/playlist?list=PL0beHPVMklwgMz4Z-mNp4_udo9mjBk7pn
Professional Contacts & Informational Interview Resources:
- Joel Swanson: https://joelswanson.art/
- CU Boulder’s ATLAS Institute: https://www.colorado.edu/atlas/
- TYPO Lab: https://www.typolab.org/about
- University of Arts Linz - Time-Based and Interactive Media Arts: https://www.kunstuni-linz.at/en/studies/degree-programmes/timebased-and-interactive-media-arts/bachelor-programme
- Ars Electronica: https://ars.electronica.art/news/en/
- Deep Space 8k: https://ars.electronica.art/center/en/deepspace/
- University of Arts Linz - Interface Cultures: https://www.kunstuni-linz.at/en/studies/degree-programmes/interface-cultures/master-programme
- Vidya Giri: https://vidyagiri.com/
- Handmade web: https://www.figma.com/blog/making-space-for-a-handmade-web/
- School for Poetic Computation: https://sfpc.study/
- are.na: https://www.are.na/
- 3e8 studio: https://3e8.studio/
- vvvv: https://vvvv.org/
- VL: https://beta.vvvv.org/using-vvvv/vl.html
- TouchDesigner: https://derivative.ca/
- The NODE Institute: https://thenodeinstitute.org/
- Refik Anadol: https://refikanadol.com/
- Martin Grödl: https://groedl.xyz/
- Process Studio: https://process.studio/
- Google Summer of Code: https://summerofcode.withgoogle.com/
Other Inspiring Creative Coders:
- Studio Brüll: https://studiobruell.de/
- Marshmallow Laser Feast: https://marshmallowlaserfeast.com/
- Schnellebuntebilder: https://schnellebuntebilder.de/
- Leander Herzog: https://leanderherzog.ch/
- Nahuel Gerth: https://nahuelgerth.de/
- Vera van de Seyp: https://veravandeseyp.com/
- William Mapan: https://verse.works/william-mapan