Art Diary: New Year’s Resolutions for 2022
Art Diary: New Year’s Resolutions for 2022
As I explained in my last art diary, my instagram package is on hiatus whilst I work on publishing my code on github. This means I haven’t got any new art to showcase in my diary. Instead I’m going to cover ten goals I have for my art in 2022.
1. Finish uploading my existing code onto github
I have started compiling all my code into an R package. I’d love to get it onto the CRAN archive someday, but perhaps that should be a resolution for 2023! For now the package lives on github. It is very much still a work in progress and the documentation is still in its infancy. For this reason I wouldn’t recommend anyone try to use it yet, but I’m already working towards this first resolution.
The most important code is on github, but a lot of the applications like Celtic knots or string art haven’t been added yet. I’ve been updating the code as I go, so it isn’t as simple as just copy and paste to get it onto github. I’m also using this transition as an opportunity to reorganise the code base. After I have finished this, I need to make sure everything still works. I will recreate all of the art I’ve already posted on instagram to make sure that it’s consistent with the old code.
2. Improve my code so it passes all checks with out any warnings
One of the big advantages of publishing my code on github is it allows you to configure automatic checks every time you modify the project. Currently there are a lot of warnings that I need to look at and fix. A lot of them relate to documenting functions. I’ve made a start putting together a basic level of documentation but there is still a lot more to do. This is one of the most daunting tasks on this list given how many functions there are in my project, and many of them have a lot of different arguments and functionality to cover.
3. Write vignettes to document all the things you can do with my package
This follows on from my discussion about documentation. Good documentation is so important, especially for a project as complex as this one. The first step is to document each function but for a project like this understanding how all the pieces fit together requires documentation that takes a more holistic view.
This is where vignettes come in. These are longer pieces of documentation that cover more than individual functions and classes. I will need to provide demonstrations of each application and showcase what the package is capable of. Another series of vignettes will cover the core structure of the package and cover the big picture of how to use the package.
4. Fill a photo album with my art
I don’t just want to publish the code for others to enjoy, I also want my friends to enjoy it too. Ultimately when I have my own place, I’d like to create and display large pieces of art on my walls. Another cool way to display my art is in photo album. I already have a printer for printing on to photo paper, so if I get an album I can collect it together and include more art than I could fit on my walls. This would make a nice coffee table style book to have on display.
5. Build a wallpaper download area on my site
This one is self explanatory. Instagram is so good for letting people discover my art, but the size of the art you can create is really limiting. Some pieces look so much better in a larger format so why not use my blog as another way to share my art.
6. Restart my instagram page
I love the challenge of producing a new piece of art of every day, but it can be really hard, especially when I have had to rewrite the underlying code a number of times. Unfortunately this has lead to a number of hiatuses since I started my instagram account. I’m looking forward to finishing my current hiatus and getting my daily art habit back going again. I stopping posting last time at number 99, so I can return with number 100 and do something special.
7. Move into three dimensions
All of my art so far has been two dimensional. Creating three dimensional art requires a lot more mathematics as you have to manage cameras and perspectives. I previously explored the mathematics of this with the above picture, but I haven’t gone back to it since. For quite a while I wasn’t sure how to progress, but I’ve decided I will rebuild my code to incorporate the idea of a camera between the calculations and the plotting. This will be a fairly big project, but I hope it will make it much easier to create three-dimensional art. I hope the idea of a camera will also be flexible enough to handle alternate co-ordinate systems like hyperbolic geometry.
8. Post some animations on youTube
When I started this art diary, I had just finished a big hiatus after upgrading my code. One of the big achievements of this hiatus was adding the ability to animate my art. I’ve put a few short gifs on my instagram but I haven’t really explored making videos. There are plenty of cool videos on youTube showing the evolution of cyclic automata, chaotic systems and physical simulations. There’s no reason why I can’t try to make some videos of my own to showcase what my package can do.
9. Build maps, graphs and infographics
Whilst the focus of the package has been on graphic design and mathematical art, it’s always been my goal to produce maps and infographics as well. After all R has always been a programming language with a focus on statistics. R might be a natural fit for graphs but there are so many different types of graph that this a big project.
When it comes to maps, I’d also need to learn about shape files, map projections and many other things to get started. It would be really useful for my travel quiz if I was able to use this package for mapping.
10. Implement text boxes and labels
This follows on immediately from the last resolution. Maps and infographics all benefit from annotations and labels. R has a very simplistic text function but it lacks a lot of features. To draw a beautiful text box you need to wrap text and calculate how big the resulting text is on the final graphic. This gets very technical as you have to know so many things. The size of every letter in the given font, the gaps between letters, the gaps between words and so on. I did attempt to do this for one font a long time ago and the effect was OK. I have now found a new package that can do these measurements for me, so hopefully I’ll be able to get even better results when I implement all this in my new package and improve the results.
There you go, those are my ten resolutions for my art project for the new year. At the end of the year I’ll take time to look back and see how I did. Come back at the end of December for that and come back at the end of February for the next instalment of my art diary.