evil-mad / robopaint

The software for your friendly painting robot kit!
126 stars 34 forks source link

Serendipity Seed : Art Creation and Print Production #255

Closed RI0 closed 8 years ago

RI0 commented 8 years ago

We had an interesting discussion the other night about the WaterColor Bot and if it was able to create Art or if it was just a printer. We talked about
the differences between creating art and creating prints. Although this could be a bit contentious, one of the ideas about creating certain kinds of art was related the artist's or the machine's ability to reproduce it.

Could we look at adding a Serendipity Button in the Print Mode that would render the current print absolutely unique?

The button could open a window to generate the Serendipity Seed based on a set of variables such as :
Time of Day, Current Cloud Cover, Current Temperature, or some other system based or human entered variable related to the artist's mood.

Some of the variables could come from an online service such as Wolfram Alpha
https://www.wolframalpha.com/input/?i=weather+in+san+francisco

Serendipity could play out by adding some error to the brush height, the overshoot, the speed, precision, etc. in a manner that would make it very difficult to produce two prints that are exactly the same... and some might actually be better than the vector drawing source.

oskay commented 8 years ago

That's a wonderful idea. We've noticed that -- at least when using actual water color paints -- prints often seem to be unique in their own way. The final painting depends on the level of paint and water, the types of paint used, and so forth. Adding some intentional variation (a "mood", if you will) sounds like fun approach as well.

However, it might also be worth considering painting modes that are entirely generative-- producing new artwork altogether.

RI0 commented 8 years ago

I agree that the prints are often nuanced for a variety of reasons... usually string tension or what seems to be random re-inking with our bot.

A full generative mode would be great if we can do it.

It may be easier to start with some extra +/- error based on some sort of unique starting place. It could be an audio file, a YouTube video, or a piece of data from one of the various open data programmes across the world : https://data.cityofnewyork.us/Transportation/For-Hire-Vehicles-FHV-Active-Drivers/xjfq-wh2d

It might be fun to have a Serendipity Setting in place before the Robot Art competition. http://robotart.org

PS - If we do look at a full generative mode, it may be worth looking at cellular automata on Scratch https://scratch.mit.edu/projects/44786142/ and the Game of life on Scratch https://scratch.mit.edu/projects/45779124/

For reference http://www.wolframscience.com/nksonline/page-171 http://www.stephenwolfram.com/publications/academic/cellular-automaton-properties.pdf

oskay commented 8 years ago

This is off-topic, but string tension should not contribute to print variability (if it does, please contact technical support, or take out the slack in the cords yourself). Also, re-inking should be quite deterministic -- try running the same print twice, to see if it does re-ink at the same place. (You can just watch it with the brush out, to verify this.) If there is some random element there, then we likely have some kind of a bug that we should track down.

RI0 commented 8 years ago

We tightened the strings and reinstalled RoboPaint. Prints are consistent and re-inking takes place at the same time with each print ( tested with 3 runs on the same page ) Not sure what was happening but it does not seem to be an issue now. Thank you.

rogerfachini commented 8 years ago

@RI0 If you didn't already know, last year for Robogames I made a fully generative app that takes audio input (file, microphone, etc) and makes a spiral pattern from it in real time. I wrote it in python, but I can start porting it over to JS as a mode if you guys think it could be useful

The code for Spiraudio can be found here (https://github.com/rogerfachini/spiraudio), and I can provide pictures of generated media if you are interested

RI0 commented 8 years ago

@rogerfachini - I did not know that. That sounds really exciting. My little sister Sofia is entering the RobotArt competition with her class.

A generative mode in RoboPaint would be great. Have you ever thought about using Perlin Noise?

PERLIN NOISE - CLOUD EXAMPLE http://www.noisemachine.com/talk1/24b.html

ANOTHER EXAMPLE http://josephg.github.io/noisejs/demo3d.html https://github.com/josephg/noisejs

RI0 commented 8 years ago

Or maybe there are items here in JS that could be useful

TUTORIALS http://p5js.org/tutorials/

EXAMPLE WAVE - with Noise http://p5js.org/examples/examples/Math_Noise_Wave.php

EXAMPLE BRUSH "Error" using Noise http://p5js.org/examples/examples/Math__Noise1D.php

docprofsky commented 8 years ago

If this is implemented it probably should be done as a separate mode. I have added this mode idea to https://github.com/evil-mad/robopaint/issues/193#issuecomment-250064913.