Creative Code Management
bit-101.com
bit-101.com
[1] - https://github.com/mattdesl/canvas-sketch/blob/master/docs/e...
If anyone else is unclear on what creative coding is: https://en.wikipedia.org/wiki/Creative_coding
Whenever I have done anything similar to creative coding (e.g. art generation with neural networks) there are three kinds of information that I need to store - code, parameters, and results.
Results could be anything from utility function values to S3 prefixes under which generated images were stored. They aren't always suitable to commit to git - do you really want to commit large, generated images/videos to your git repo?
Git commits are a great way to refer to different points of the code base, but I like to have parameters and (corresponding results) stored somewhat orthogonally to git commits. Because the same commit of the code base might apply to multiple different runs.
The solution I've converged on is to commit a CSV file alongside the code with the following structure for its rows: <git_commit>,<parameter_1>,...,<parameter_m>,<result_1>,...,<result_n>
The only tricky part is running "CSV migrations" when you add new parameters. But if your rerun script only uses parameter names (specified in first row of CSV), this isn't a real problem.
* no quoting of the arguments
* no error handling; if any of the git commands fails, the script will drive on and probably do the wrong thing; should at least use the "errexit" option
I don't usually do this though... after 15+ years of doing generative audio work saving every iteration feels a little like hoarding.