I like playing around with JavaScript and/or Tracery and making silly little generators;
My most recent generators are:
Weird Prompt Generator for all your weird artistic idea needs. (Made with Tracery)
Alien's Aliens! (Made with Tracery/SVG)
and The (Semi) Random Color Palette Generator. (Made with JS)
I've also made several bots!
(You can follow me on Mastodon or on BlueSky if you want.)
My first bot! <3.
I had recently gotten into digital art, and was getting really into weird side distractions like gradient maps, and was having a lot of fun finding new gradients to use in my mandalas and other art.
While poking around the net I found a few “color palette generators” which had promise for making cool palettes and gradients, but many of them were far too random and came up with way more duds than winners.
Then I started thinking about how I would go about making my own generator - how I wouldn't just generate a random hex code for each color but pick a seed, and then generate a palette based on that and one of the more popular color combinations - triad, analogous, complimentary, etc. and apply a little extra randomness via tweaking the saturation and lightness values.
And I just couldn't stop thinking about it! So I went looking for information on how such things are built, and one of the first things I was told was “don't, it will be too hard, there's no way to know exactly what you will need to learn to do this, you should just pick something randomly and then after a few years see if you can do what you want, and if that doesn't work start over.” etc etc.
And, well, that kinda ticked me off.
So I went looking a little more and found Perchance, which is a site explicitly for making random generators. (Sadly it's been taken over by rabid AI fans and is mostly full of AI generated anime porn, or I would provide a link.) Anyways, after a while muddling through I had a pretty decent generator, but I felt really constrained by the limits of what I could do via that platform, including the fact that I couldn't easily turn it into a Mastodon bot.
So I poked around some more. Perchance was constructed on a base of JavaScript, and I had already used a little of that in my generator, so I took what I had and moved it over to Glitch, and started the job of converting everything into JS without really knowing much JS myself, (a lot of googling was involved!) and surprisingly it wasn't that hard!
But I still couldn't figure out how to make it a Mastodon bot: first I had to figure out how to connect to Mastodon and make it post - a HUGE than you to BooDoo and Stefan for the advice on this part, they were SUPER helpful. Then I needed a host, Glitch USED to be able to do such things, but they had recently turned off the ability to ping projects from outside to make them post on a schedule, and unpaid accounts had all projects put to sleep after five minutes. After more searching I finally decided to just host the program on my computer as it wasn't that big.
And here we are! A beautiful spite-fueled bot that has started an obsession!
This was kinda an accidental bot. I was playing around with some code in JS and ended up with something that looked kinda cool, and then I thought if I formatted it just a bit differently, and used slightly different symbols it would look kinda like a quilt, then I thought, this is neat, but I just learned about this Tracery thing, how would I make in in THAT using SVG instead of the JS canvas?
And then I had all this Tracery code and Cheap Bots Toot Sweet just sitting there…. And tah dah! A bot!
Ever fall down a Wikipedia rabbit hole and then find yourself full of weird new ideas completely unrelated to what you had originally gone looking for?
Yeah, that's kinda what happened here. Numbers stations are a fascinating concept, and I just felt there wasn't enough weirdness out there.
I had originally just been going to do it all in straight Tracery and just post the numbers. But then when my partner and I were talking about numbers stations with my son, my partner brought up her music composing programs and started putting in random numbers and making it sing. And then I just couldn't let go of the idea of having the bot actually Talk!
It took a while to find a good open source TTS program that didn't sound like total garbage that I could run via Node.js (how I run colorbot and do most of my programming) but eventually I found EspeakNG and we were off!
Sadly, at the moment you can't post audio files to Bluesky so they get a bit of a downgrade to their bot experience.
After NumbersBot I was feeling the itch to do something with SVG again.
One of my biggest inspirations is SoftLandscapes, and I wanted to see if I could make something similar, I started just playing around with the gradient properties of SVG and seeing what I could do and make (and playing with color is just plain fun!), and at one point I threw a cool random batch of gradients into circle as a pattern element and I was struck at how cool it looked, and how ethereal and moon like against a black background.
I thought, this is a good scene, put some stars in the back… maybe a bit of a gradient coming up from the horizon… and then I realized it would make a great backdrop to a city skyline! I didn't know a lot about SVG stuff yet so it took me a while to figure out the best way to draw the buildings and give them windows, but eventually I got it.
Then I decided it needed some little random bits of interest flying through the sky. I started with the UFO which was deceptively easy to just… draw, using SVG shapes and x/y coordinates, then the Blimp and finally the Plane, which was the hardest to draw using just code, but I managed a pretty passable job, I think.
I have plans to go back eventually and change up the way the buildings are drawn so I can give them different top and roof treatments, so they aren't all just square. And I'd like to add some more random flying things eventually as well. But at the moment I'm really quite please with how this came out.
María de los Remedios Alicia Rodriga Varo y Uranga
A Spanish Mexican surrealist painter, and one of my favorites, just, the actual art is freaking amazing and her subject matter is just… I love it.
There used to be a bot posting her art but it stopped working ages ago, so I took it upon myself to make a new one. It was especially fun because I got to go through and look at SO MANY PAINTINGS!
There actually was another bot already on Bluesky, but its image source was small and substandard, so I don't feel bad horning in on its territory. Remedios deserves better rep than that.
In Minecraft everything is pixelated. My son and I were discussing custom textures for an item for a mini game we were planning - We wanted to make a bunch of little aliens like from Space Invaders. But my son was worried about how to design them, so I was explaining how one could make a random generator to make a ton of them and pick his favorites.
I'd been playing with that idea in the back of my head for a while, trying to figure out how to do something like that in Tracery when I learned about the Pixel Monsters Bot and was a little sad that the idea had already been done, but the bot was down, and the maker seemed unreachable, so I still kept tossing the idea around in my head until I just couldn't help it, and started writing the Tracery.
A little while later I found this article and then a different generator site and didn't feel quite so bad about keeping on with my idea.
My idea definitely wasn't original, and the Tracery code is definitely longer than the Python or JavaScript used in those places, but it was still super cool. Tracery is a remarkably “simple” language which can make some amazingly “complicated” results and it felt good to be able to produce something so cool with such easy and simple tools. And I definitely liked how I could just throw my code up on Cheap Bots Toot Sweet or Blue Bots Done Quick and have an “instant” bot!
And making the generator on my site was just as easy and fun!
Not everything has to be perfectly original or super efficient to have fun in the doing.
I follow a few art prompt type sites and accounts, and the prompts always seem so boring and unimaginative, just one random word or phrase. And I thought to myself, I could totally do better than that. (I'm aware that the simple words and prompts is the idea… to allow your inspiration and creativity to flow, I'm mostly just having fun here, alright?)
this is the first “proper” word-based Tracery I've written, and it was surprisingly difficult to make sure words and tenses and phrases matched up right. There's still a little funkiness around the pluralization of some words - Tracery has an in built pluralization function but it is VERY simple and doesn't handle weird words like moose/moose, mouse/mice, moth/moths, goose/geese & etc very well. And I sometimes still get phrases that don't flow as nicely as I would like. But it's most definitely WEIRD which is exactly what I was going for.
I'm in the process of putting together some better word/phrases lists for it, and I hope to be able to improve it and increase the weirdness even more in the future.
The idea for this bot actually came to me a while ago via Botwiki: there use to be another SockBot but it hadn't posted in over four years, and I really loved the idea. But up until recently I wasn't really sure how I would be able to make something even remotely close with Tracery. And after ColorBot I really wanted to avoid having to make a bot that need to be hosted/dependent on my computer, which means I'm “stuck” with Tracery and Cheap Bots Toot Sweet (this is not a complaint, I LOVE Tracery and I enjoy pushing the boundaries of what can be accomplished with seemingly simple code and SVG).
But then after making the Aliens I was feeling a lot more comfortable with what Tracery can do and I felt I was ready to tackle it. The Biggest Hurdle would be drawing the socks in SVG. Previously I had only drawn simple little silhouettes with just the straight code, and while sock shapes seem relatively simple, there were a lot of separate little parts that I needed to keep separate. And the curves and semi circles had given me FITS with SoftSkylines.
So I just “gave up” and drew the socks in Inkscape. Then opened the files up in Notepad++ and teased out all the relevant SVG code that I needed for the Tracery. It feels kinda like cheating, but then I went overboard with the leg and foot decorations and made about a million combination possibilities. (And I still have a few ideas for more, but I got tired and just wanted to see the bot gooooo!)
The trickiest bit was assuring that the individual parts and decorations of the sock could be properly described in the alt text. That's one of my main regrets of SoftSkylines - that the descriptions were so bland and I couldn't figure out how to add the random flying bits and I will definitely be going back some day to try and fix that. The phrasing of the alt text still feels a little awkward to me, but I'm still pretty pleased with how it all worked out.
Inspired by 10Print.org and the Random Tiling Bot over on Mastodon by Dave Richeson
Sadly, my code is significantly longer than one line, but this bot was still a lot of fun to make.
I’ve really enjoy the RandomTiling bot’s posts over on Mastodon, and was a little sad when the creator implied that he wasn’t going to migrate it.
I started thinking about how I would recreate it, but quickly got far too overwhelmed by the idea of trying to make all the different tiling patterns it uses let alone set up the random selections and rotations. Eventually I decided that maybe he could be persuaded to keep going? (I sent him a message letting him know how much the bot was loved, and he decided to Migrate! Hooray!) But did decided to at least try to make a bot that did the 10Print pattern, it’s simple yet really satisfying, and it shouldn’t be too difficult, right?
Friends, it was both very easy and very hard.
It took me a couple of tries before I found a method I was pleased with, I spent some time studying the code of some other bots that I had access to to see how they handled certain elements and eventually settled on a method that I’m pretty happy with. And after that it was just a lot of tedious copy/paste and search/replace. As each slash needed its own “line” of SVG code, but each one was essentially identical aside from it’s coordinates. I had originally set it up with the idea of adding more patterns as time went on to eventually become a successor of RandomTiling. But now that RandomTiling is sticking around I think now I’m just going to leave it as is. Maybe someday I’ll revisit the idea and steal my own code for it, or maybe I'll have learned something new and go in a totally different direction!
Partially inspired by this numberphile video (and you should totally check out this really cool paper for even more mathy and stitching nerdiness.)
I didn't really mean to make another bot, I MEANT to be working on Advent of Code and learning new stuff, but then someone I followed posted a procedurally generated piece of art they had coded using Hitomezashi as a base and it made my brain go Bzzzzz! And then I just couldn't stop thinking about it. Thankfully, it was fairly easy to put together, as I did indeed steal 10 Print's coded bones for most of it, but instead of having to code in every slash I just had to make one "dasharray" per row, which was much nicer. then I just worked up a couple random/semi random variations for horizontal vs vertical lines, so some images end up being more symmetrical than others to varying degrees. I’m quite pleased with the outcome, the patterns it makes are really fun and pleasing to look at. I may end up borrowing some for my handcraft projects, and really hope it can inspire other handcrafters as well!
More Bots and Generators coming soon!
To learn more about making bots, and bots in general, check out Botwiki.org
Botsin.space the instance where all of my Mastodon Bots are hosted is closing down, so I am in the process of looking for new homes.
I don't plan on retiring any of them, but they may go down for a little while, or may be a little wonky during the migration process.