Project Proposal from Week 3 on my journey to learn creative coding, as part of the University of Colorado Boulder’s “Professional Development in Computer Science” course.
Creative Coding with p5.js
Table of contents
Open Table of contents
Vision Statement
This project is focused on learning and exploring creative coding using the JavaScript library p5.js. Over the course of the semester, I will follow tutorials, create a series of visual coding sketches, and document my process in an online portfolio. This project will allow me to explore and build skills at the intersection of computer science and the arts. By developing technical fluency in creative coding and producing a body of computational drawing work, I aim to grow as both a programmer and visual artist. The project will strengthen my ability to work in new media art contexts and begin to position myself professionally as a creative technologist who bridges computation with art and the humanities.
Motivation
While enrolled in the CSPB program, I also studied Fine Arts. However, I never really had any time to pursue creative coding in the last few years, since the CS coursework was demanding and time-consuming, especially for me, coming from a non-technical background. Since I am now in my final semester of the CSPB program and already graduated from my Fine Arts degree, this project is a long-overdue opportunity to finally dedicate consistent time to learning creative coding. It will allow me to merge my technical and artistic interests, hold myself accountable, and start building a body of work that could lead to future creative and professional opportunities in fields like digital art and new media, museum curation, or software development for artists and artist collectives.
Specific and Measurable Goals
- Learn the fundamentals of creative coding with p5.js with guidance from the following resources:
- The Coding Train - Programming with p5.js
- Steve’s Makerspace - How to Code Generative Art
- Generative Design: Visualize, Program, and Create with JavaScript in p5.js by Benedikt Groß et al.
- Create a minimum of 10 creative coding sketches, documented with screenshots, code, and possibly also including short artist statements.
- Build and maintain a GitHub Pages portfolio to showcase the project, including weekly updates, reflections, and final documentation.
- Conduct at least 3 informational interviews or email exchanges with creative coders or digital artists to learn about their tools, workflows, and career paths.
- Reflect on the conceptual relationship between code and drawing by writing a short essay (800-1000 words) as part of the final documentation.
Risks to Project Completion
- New language and coding environment: I’ve only scratched the surface before with p5.js and am not so well-versed in JavaScript.
- Creative block: Generating original, creative sketches that go beyond the tutorials might be difficult, especially since my mind is juggling many other topics including my full-time job, two other CSPB courses, and life in general.
- Limited prior networking experience: Currently I don’t have m/any strong contacts in the creative coding community, so outreach might be slower than expected.
Risk Mitigation Strategy
- Begin by following structured tutorials to build confidence and momentum before attempting any fully original creative work.
- Use the guidance of structured prompts and posts from generative art communities (like Reddit or OpenProcessing) for inspiration.
- Draft email templates and questions for informational interviews to make outreach easier, and start contacting artists early!
- Allow for flexibility in the sketch count (like aiming for 8-10 sketches instead) to manage creative ups and downs.
Project Assessments
- Technical learning: Complete the Coding Train tutorial videos, and if time, use the other resources I listed above.
- Creative output: Create 8-10 creative coding sketches that are published and documented online.
- Professional networking: Complete at least 3 professional outreach interactions with artists / creative coders.
- Documentation and Reflection: Maintain a weekly blog with updates and write a final reflective essay.
- Portfolio Website: Produce a GitHub Pages site that clearly presents the full scope of the project.
Project Portfolio Link
I’ll be hosting the project updates here on this blog. :)
I would also like to eventually post some artistic snippets and reflections for a more general audience on my Substack.