This repo includes exercise files used in a workshop I ran in 2018. The workshop built up on a single circle packing exercise, adding to it different functionalities and along the way explaining object oriented programming. Processing framework was used for this, but the concepts can be used anywhere else.
The exercises are heavily annotated, so you can go through them in order on your own!
Ex_001: Different primitive data types in processing.
Ex_002: Data structures and for loops.
Ex_003_Arrays: Data structures cont., ArrayLists syntax in Processing.
Ex_Circle: Basic functions/methods.
Ex_Packing_001: Randomly place a circle of random size on the canvas.
Ex_Packing_002: Same as previous one, but as a class instead of a function. Also start adding interaction.
Ex_Packing_003: Looking into using Arraylists and for-each loops.
Ex_Packing_004: Adding a method to the class to check for circle-circle intersection.
Ex_Packing_005: Add a circle builder/circle factory method to create circles and add them to the scene only if they don't intersect any other circle.
Ex_Packing_006: Pack them!
Ex_Packing_007: Adding motion to the circles.
Ex_Packing_008: Add forces like gravity and test collision against canvas borders.
Ex_Packing_009: Add initial velocity and confine them within the canvas.
Ex_Packing_010: Make them collide!
Ex_Packing_011: Use an image to control their size.