Designing with Python: Programming for a Visual Context
A course by Alexandre B A Villares, Visual Artist
Joined January 2022

Unleash your creative potential. Learn the power of python programming and processing.
Explore the fascinating world of creative programming applied to art and graphic design. If you've ever wondered how to bring your artistic ideas to life using code, this course is your answer.
Alexandre Villares, visual artist and educator, will guide you through an exciting journey where you will learn how to create unique works of art using Python and Processing programming tools. Forget the need for prior knowledge, this is about personal expression through programming.
What will you learn in this online course?
17 lessons & 23 downloads
- 98% positive reviews (65)
- 7,172 students
- 17 lessons (2h 56m)
- 23 additional resources (8 files)
- Online and at your own pace
- Available on the app
- Audio: Portuguese, English, Spanish (Latam), French, Indonesian, Italian, Romanian, Turkish
- Portuguese · Spanish · English · German · French · Italian · Polish · Dutch · Turkish · Indonesian · Romanian
- Level: Beginner
- Unlimited access forever
What is this course's project?
The final project will challenge you to apply everything you've learned to create a unique poster with multiple versions. Through creative programming, you will be able to design artistic compositions that would be impossible to achieve with traditional methods.
Projects by course students
Who is this online course for?
This course is designed for visual artists, graphic designers and anyone passionate about creativity who wants to explore new forms of expression through programming. No prior programming knowledge is required, just an open and curious mind.
Requirements and materials
All you need for this course is a computer with internet access. We will use free software including Thonny IDE, Python and the py5 library, so no expensive programs or additional tools are needed.
Reviews

Alexandre B A Villares
A course by Alexandre B A Villares
As an artist, Alexandre delves into the fascinating realm of creative programming, exploring the creation of unique works of art through the use of code. Through this fusion of art and technology, he generated posters and designs that found their way into magazines and exhibitions, highlighting his ability to merge modernist avant-gardes with geometric and abstract themes.
As an educator, Alexandre shares his knowledge and passion with others, actively dedicating himself to teaching programming to artists and designers. Its objective is to demonstrate how programming can be not only useful, but also expressive and poetic within the visual arts.
Inspired by the pioneers of computer art and contemporary artists who explore programming as an artistic medium, Alexandre immerses himself in a world of experimentation and constant creativity.
Content
-
U1
Introduction
-
Presentation
-
Influences
-
-
U2
Motivation, tools and first steps
-
Motivations for creative programming
-
The Python language and the py5 library
-
Workbench and the Thonny IDE with the py5mode plugin
-
Initial py5 drawing vocabulary
-
Repeat loops
-
How to define and use new functions
-
Function to draw stars
-
Randomness: infinite options 1
-
Randomness: Infinite Options 2
-
-
U3
Starting a grid-based poster
-
Sketches to study and plan the poster
-
A grid of ordered elements
-
Element Grid and Random Variation
-
Quickly generating poster variations
-
-
U4
More complexity in image and vector export
-
Recursive Grid
-
Export to PDF or SVG
-
-
FP
Final project
-
Design with Python: programming for a visual context
-
What to expect from a Domestika course
-
Learn at your own pace
Enjoy learning from home without a set schedule and with an easy-to-follow method. You set your own pace.
-
Learn from the best professionals
Learn valuable methods and techniques explained by top experts in the creative sector.
-
Meet expert teachers
Each expert teaches what they do best, with clear guidelines, true passion, and professional insight in every lesson.
-
Certificates
PlusIf you're a Plus member, get a custom certificate signed by your teacher for every course. Share it on your portfolio, social media, or wherever you like.
-
Get front-row seats
Videos of the highest quality, so you don't miss a single detail. With unlimited access, you can watch them as many times as you need to perfect your technique.
-
Share knowledge and ideas
Ask questions, request feedback, or offer solutions. Share your learning experience with other students in the community who are as passionate about creativity as you are.
-
Connect with a global creative community
The community is home to millions of people from around the world who are curious and passionate about exploring and expressing their creativity.
-
Watch professionally produced courses
Domestika curates its teacher roster and produces every course in-house to ensure a high-quality online learning experience.
FAQs
The course is intermediate level, perfect for those with some basic programming experience—especially in Python—who want to explore creative applications in art, design, and data visualization.
It’s recommended to have basic Python knowledge and an interest in digital art or design. Prior experience with Processing isn’t required, but being familiar with programming logic definitely helps.
You’ll learn how to create programmatic visual compositions, explore generative art techniques, build recursive grids, apply randomness, control LED matrices with Arduino, and export vector images.
This course focuses on blending art, design, and technology through programming, covering tools like Py5, Processing, and Arduino, and teaching you to create interactive, innovative visual works.
Yes, you’ll need to install Python, the Thonny editor, the py5mode plugin, and the Py5 and Processing libraries. Full installation instructions are provided at the start of the course.
Yes, the course covers how to develop custom plugins to extend drawing software features, making creative workflows smoother.
The course teaches how to integrate Arduino to build cellular automata, control LED matrices, and create interactive art installations, bridging digital art with the physical world.

I found out Processing’s no-prefix style (size() instead of py5.size()) requires name injection at runtime. Thonny handles this implicitly, but uv doesn’t. A plain import py5 won’t expose the global namespace or live variables.
The fix:
- Install Java: `sudo pacman -S jdk-openjdk`
- Install extras: `uv add "py5[extras]"`
- Run sketches as: uv run py5-run-sketch main.py
This reproduces Processing-style behavior in any editor by using the proper runtime, not IDE-specific wrappers.
Excelente!
O Alexandre tem um ótimo ritmo e explica os detalhes de implementação na medida certa.
Um curso que estimula demais a ser criativo.
Excelente curso!!
Aprendi muito sobre o assunto e sinto muito mais confiança para experimentar e testar ideias.
Vi algumas avaliações falando sobre o projeto final ser muito direcionado, mas discordo, pois o aluno é livre para criar seu design e inovar partindo do que foi ensinado.
Acredito que dentro do tempo do curso, o que foi ensinado é super válido e traz grandes benefícios para iniciantes.
Recomendo muito para quem está começando e quer ter mais confiança na área!
Parabéns pelo curso
Le cours est vraiment très bien conçu : le contenu est clair, bien structuré et les explications sont pédagogiques. On sent un vrai souci de transmission et une volonté d’accompagner les apprenants pas à pas. Certaines parties demandent un peu plus d’effort et de persévérance, mais c’est aussi ce qui rend l’expérience enrichissante. Avec un peu de patience, on progresse vraiment et on en retire beaucoup de satisfaction. En résumé, il faut s’accrocher, mais ça en vaut largement le coup !
HE SABIDO ENTENDER GRACIAS A ESTE CURSO