{"id":16147442,"url":"https://github.com/edap/udk-creative-coding","last_synced_at":"2026-03-18T18:05:30.332Z","repository":{"id":145594163,"uuid":"215800115","full_name":"edap/udk-creative-coding","owner":"edap","description":null,"archived":false,"fork":false,"pushed_at":"2020-01-29T10:33:30.000Z","size":10902,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T21:44:34.507Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-17T13:32:19.000Z","updated_at":"2024-11-24T20:38:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"84808c21-3b08-4432-b8a4-35f28951c52f","html_url":"https://github.com/edap/udk-creative-coding","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edap/udk-creative-coding","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-creative-coding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-creative-coding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-creative-coding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-creative-coding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edap","download_url":"https://codeload.github.com/edap/udk-creative-coding/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2Fudk-creative-coding/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28631936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T00:25:19.560Z","updated_at":"2026-01-21T10:09:01.058Z","avatar_url":"https://github.com/edap.png","language":"Makefile","funding_links":["https://www.patreon.com/posts/colors-colors-18611429"],"categories":[],"sub_categories":[],"readme":"## Intro to OF\n\nDescription:\nInstallation, get Familiar with your IDE, OF application structure, c++ basic operators.\n\nMake your first OF application, create a login in the OF forum.\n\nKeywords: `mousex`, `ofDrawCircle`, `ofColor`, `ofDrawLine`, `ofPushStyle`\n\nApplication: `first`, `animationSimple`\n\n\n## Colors\n\nDescription: Learn how to create colors and and how to change them.\n\nKeywords: `ofColor`, `ofFloatColor::red`, `ofBackground`, `ofPushStyle`, `ofPopStyle`, `ofEnableBlendMode(OF_BLENDMODE_ADD)`, `HSB`, `RGB`\n\nApplication: `colors`\n\n### Exercise(s)\n- Create your own palette, invent your own animation.\n\nNotes for the theacher: \n- Exercises \"Color\" at page 88 of \"Code as Creative Medium\"\n\n### References\n[The Interaction of Colors](https://www.goodreads.com/book/show/111113.Interaction_of_Color) by Joseph Albers.\n\nColors suggestion by [Manoloide](https://www.patreon.com/posts/colors-colors-18611429)\n\n\n## Logical operators, comparison operator, loop and conditions\n\nDescription: Learn how to compare two variables, how to make a branch condition, how to make a loop.\n\nKeywords: `||`, `\u0026\u0026`, `\u003e`, `\u003c`, `\u003e=`. \n\nExercises:\n\n- Make a sketch where the value of a variable is changing continuosly and you compare this value with a fixed variable. Use comparison operator or logical operator to change the visual output of your sketch.\n- Make an application and draw a square. Change the background color when the mouse is over the square.\n\nNotes for the teacher:\n- Exercises \"Conditional testing\" at pag. 90 of \"Code as Creative Medium\"\n\nApplications: `logicalOperators`, `comparisonOperators`, `sine-waves-loop`\n\n## Matrices\n\nDescription: Learn how to move and rotate your forms\n\nKeywords:\n\n```cpp\nofPushMatrix()\nofPopMatrix()\nofTranslate()\nofScale()\nofRotateDeg()\nofRotateRad()\n```\n\nApplication: `introToMatrices`\n\nExercise: Re-code \"Schotter\", by Georg Ness, 1965.\n\n## Modulo operator and loops\n\nDescription: get confident with the modulo operator and loop.\n\nKeywords: `%`, `for`, `while`\n\nExercises:\n\n- Make a grid where the color of the cells depends on some calculation that involves the modulo operator.\n\n- Make an application that uses 3 different sine waves with different amplitude and frequency.\n\nNotes for the teacher:\n- Exercises \"Iteration\", pag 86 of \"Code as creative Medium\"\n\n\n## Unit cirlce, sine wave\n\nDescription:\n\n- Understanding sin of time, plotting the sin(time) on the x axis.\n- Understanding the unit circle [gif](https://commons.wikimedia.org/wiki/File:Circle_cos_sin.gif).\n- How to represent a point in cartesian and in polar space, how to convert from one space to the other.\n\nKeywords:\n\nSOHCAHTOA, sine and cosine waves, `ofGetElapsedTimef()`, `ofMap`.\n\nHomeworks:\n- Make an application that draws a spiral.\n\n\n## Noise and Random\n\nDescription: What is Randomness and what is noise, and how those are generated in the computer. Kevin Perlin and the Perlin noise in Tron.\n\nKeywords: `ofSeed`,`ofRandom`, `ofNoise`\n\nNotes for the teacher:\nExercises \"Unpredictability\" pag. 106 of \"Code as Creative Medium\".\n\nApplications `noiseExample`, `randomExample`\n\nReferences: [A Million Random Digits](https://en.wikipedia.org/wiki/A_Million_Random_Digits_with_100,000_Normal_Deviates), [History of randomness](https://en.wikipedia.org/wiki/History_of_randomness), [Random Number generators](https://en.wikipedia.org/wiki/Random_number_generation)\n\n## Containers and the glm::vec2 datatype\n\nVectors\n\npush_back()\nsize()\nempty()\nclear()\nfront()\nback()\n\nintro to point as datatype (`glm::vec2`). How to iterate through points\n\nSee, in order these app: `introToContainer`, `containers_polyline`.\n\n\n### Exercise(s)\n\n- Read [Intro to Lines](https://openframeworks.cc/ofBook/chapters/lines.html)\n\n- Read the two references regarding `std::maps` and `std::vectors`.\n\nNotes for the teacher:\n- Exercises \"Arrays\" at pag. 91 of \"Code as Creative Medium\".\n\n### References\n\n[std::vectors](https://openframeworks.cc/ofBook/chapters/stl_vector.html) documentation\n\n## Path, lines, shapes, curves.\n\nDescription: How to create shapes and lines connecting points.\n\nApplication: `shapes-Blob`\n\nNotes for the teacher:\nExercises \"Curves\" pag. 93 of \"Code as Creative Medium\".\n\n\n### Exercises\n- Create your own shapes changing the algorithm that we have used to draw the circles\n- Move from polar coordinates to cartesian coordinates and viceversa. Have a look to the previous exercise about the unit circle.\n\nKeywords: `ofPath`, shapes.\n\n\n## Images\n\nDescription: How to manipulate pixels one by one and save the result in an image.\n\nKeywords: `ofImage`, `ofPixels`, `getColor`, `setColor`, `setFromPixels`, `getPixels`, `getBrightness`\n\nApplications: `ImageLoadAndChange`, `ImageRandomPixel`\n\nNotes for the teacher:\n- Exercises \"Image\" at pag. 101 of \"Code as Creative Medium\".\n\n## Typography\n\nBitmap\nKeywords: `ofDrawBitmapString()`, `ofDrawBitmapStringHighlight()`, `ofTrueTypeFont font;` , `font.load(name, size, true, true, true)`, `font.drawString()`, `font.getStringAsPoints()`\n\n\n\nNotes for the teacher:\n- Exercises \"Typography\" at pag. 105 of \"Code as Creative Medium\".\n\nApplications: `FontBoundingBoxExample`, `fontWaves`, `fontAndPixels`, `font3DExample`. See also `fontShapesExample` in your local OF installation, inside `examples/graphics`\n\nCredits:\n\nThe apps `FontBoundingBoxExample` and `fontWaves` come from the exercises about typography in the repository [RTP_SFPC_FALL19](https://github.com/ofZach/RTP_SFPC_FALL19) by Zach Lieberman.\n\n## Vectors and Forces\n\nDescription: move things around using vectors.\nTopics: Acceleration, mass, multiple forces interaction.\n\nKeywords: `glm::vec2`\n\nReference: [Nature of Code](https://natureofcode.com/book/chapter-1-vectors/). It is in processing but the concepts are valid in OF as well.\n\n\n## ofNode\n\nDescription: introducing ofNode, How to combine several ofNode instances together.\n\nKeywords: `ofNode`, `panDeg`, `ofPolyline`\n\n[ofNode Documentation](https://openframeworks.cc/documentation/3d/ofNode/)\n\n## Meshes\n\nKeywords: ofNode, ofEasyCam, ofMaterial, ofLight, 3D coordinate system, normal, surfaces.\n\nResources:\n[intro to meshes](https://openframeworks.cc/ofBook/chapters/generativemesh.html)\n\n## Meshes and camera\nKeywords: addVertex, generative meshes, how to rotate a point.\n\n## Arduino\n\nDescription: Build an image distorsion tool using arduino.\n\nKeywords: `ofSerial`\n\n## OSC\n\nDescription: Make music letting your OF application talk to Sonic PI.\n\nKeywords: `OSC`\n\n\n\n### Appendice\n\nHeader and cpp \n\nOF vs C++  (ofMap vs sin)\n\nCommon (core) data types\n\n```\nchar\nint\nfloat\nbool\nstring\n```\n\nSigned vs unsigned, # bits, etc.\n\nType casting/conversions (float to int, etc.)\n\nData Storage\n\nControl \n\n```\nif (myVar == 1) {\n  // then to something\n} else {\n  // otherwise do something else\n}\n\nfor (int i = 0; i\u003c 10; i++) {\n  // do something 10 times\n\n}\n\nwhile(myVar == 1){\n  // keep looping until myVar is different from 1\n} \n```\n\n\narithmetic operators \n\n```\n+\n-\n*\n/\n%\n++\n-- \n```\n\ncomparison operators\n\n```\n==\n!=\n\u003e\n\u003e=\n\u003c\n\u003c=\n```\n\nlogical operators\n\n```\n\u0026\u0026\n||\n!\n```\n\n### Working with the terminal.\n\nYou do not require xcode or visual studio 2017 to run opeframeworks. A terminal and a text editor are enough. As a text editor I suggest [visual studio code](https://code.visualstudio.com/download).\n\nThe navigation commands that you need to move around using the terminal are:\n\n- `pwd`. It means \"print working directory\" and it simply print on screen the path on which you are at the moment.\n- `ls`. It means \"list\", it lists all the files and directory in the folder where you currently are.\n- `cd`. It means \"change directory\", and it is the equivalent of double clicking on a folder.\n\nThe commands that you need to compile openframeworks are:\n- `make`. It compiles the app.\n- `make run`. It runs the up.\n- You can run them together using `make \u0026\u0026 make run`\n\nA practical example. Let's say that you want to run the application call \"myHomework\" in the \"MyApps\" folder in openframewors.\n\nLaunch the terminal an write `pwd`. The terminal will reply you something like `Users/myUser`. if you print `ls`, you will see all the folder that you have in your home. Let's assume that you have openframeWorks in your `Documents` folder.\n\nIf you write `cd Documents`, you will enter the Documents folder. If, from there, you write `cd openFrameworks/apps/myApps` you will enter the `myApps` folder.\n\nIn this folder there are all your sketches, included `myHomeworks`. cd into that directory, typing `cd myHomeworks`.\n\nNow you are inside an openFrameworks application. The `make` command will compile it and `make run` will run it. If it is the first time that you run openFrameworks, it may take a while.\n\n### Credits\nSome of the exercises in this repository come from [Zach Lieberman's repository](https://github.com/SFPC), from the book \"Code As Creative Medium\", by [Golan Levin](http://www.flong.com/).\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fudk-creative-coding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedap%2Fudk-creative-coding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fudk-creative-coding/lists"}