
Just having fun. Gah, why is it so tempting and easy to throw this stuff on social media, but not on one’s own blog?
I really like procedural art direction. Here's one I wrote in Python for my class that generates random texture atlas assignments. I'm new to Trinket, but it's cool to see that you can embed Python in Canvas.
import random
adjectives = [
"acidic",
"aggressive",
"agreeable",
"alive",
"ambitious",
"angry",
"attractive",
"bald",
"beautiful",
"better",
"bewildered",
"big",
"bitter",
"brave",
"breezy",
"bumpy",
"calm",
"careful",
"chilly",
"chubby",
"clean",
"clever",
"clumsy",
"cold",
"colossal",
"cool",
"cool",
"creamy",
"crooked",
"cuddly",
"curved",
"damaged",
"damp",
"dazzling",
"dead",
"delicious",
"delightful",
"dirty",
"disgusting",
"drab",
"dry",
"eager",
"easy",
"elegant",
"faithful",
"famous",
"fancy",
"fat",
"fierce",
"fit",
"flaky",
"flat",
"fluffy",
"freezing",
"fresh",
"gentle",
"gifted",
"gigantic",
"glamorous",
"gorgeous",
"greasy",
"greasy",
"great",
"grumpy",
"hallowed",
"handsome",
"happy",
"helpful",
"high",
"hot",
"hot",
"huge",
"icy",
"immense",
"important",
"inexpensive",
"itchy",
"jolly",
"juicy",
"kind",
"large",
"lazy",
"little",
"lively",
"long",
"loose",
"magnificent",
"mammoth",
"massive",
"melted",
"microscopic",
"miniature",
"muscular",
"mysterious",
"narrow",
"nervous",
"nice",
"nutritious",
"nutty",
"obedient",
"obnoxious",
"odd",
"panicky",
"petite",
"pitiful",
"plain",
"plump",
"polite",
"powerful",
"prickly",
"proud",
"puny",
"quaint",
"rancid",
"refined",
"repulsive",
"rich",
"ripe",
"rotten",
"rough",
"round",
"salty",
"savory",
"scary",
"scrawny",
"scruffy",
"shaggy",
"shallow",
"shapely",
"sharp",
"short",
"short",
"shy",
"silly",
"skinny",
"slimy",
"small",
"sour",
"spicy",
"spoiled",
"square",
"stale",
"steep",
"sticky",
"stocky",
"straight",
"strong",
"sweet",
"tall",
"tangy",
"tart",
"tasteless",
"tasty",
"teeny",
"tender",
"thankful",
"thoughtless",
"tight",
"tiny",
"ugly",
"uneven",
"uptight",
"vast",
"victorious",
"warm",
"weak",
"wet",
"wide",
"witty",
"wonderful",
"wooden"
"worried",
"yummy",
"zealous"
]
subcultures = [
"Artificial",
"Wooden",
"Plant",
"Brick & Mortar",
"Terra Cotta",
"Athlete",
"Stone",
"Contemporary",
"Biker",
"Biological",
"Frontier",
"Biopunk",
"Bird",
"Beach",
"Bodybuilding",
"Bohemianism",
"Bro",
"Dark Age",
"Greco-Roman",
"Bear",
"tea party",
"Wasteland",
"Child",
"Candy-themed",
"Food-themed",
"Crustacean",
"Cryptozoology",
"1950s",
"Cybergoth",
"Slum",
"Superhero",
"Cottagecore",
"Volcanic",
"Academic",
"Underwater",
"Desert",
"Mountain",
"Alchemical",
"Racing",
"Demonic",
"Dieselpunk",
"Ashen",
"Demolished",
"Angelic",
"Nightmare",
"Emo",
"Wealthy",
"Dreamland",
"Urban",
"Arctic",
"Elemental",
"Bird",
"Scientist",
"Animal",
"Futurist",
"Dragon",
"Pirate",
"Sword & Sandal",
"Zombie",
"Gothic",
"Goth",
"Bronze Age",
"Stone Age",
"Wizard",
"Grunge",
"Feminine",
"Masculine",
"Hacker",
"Neolithic",
"Spanish",
"Toddler",
"kid-friendly",
"Dystopian",
"Post-apocalyptic",
"Hard rock",
"Medieval",
"18th century",
"Hip hop",
"Hippie/Hippy",
"Hipster",
"Hobo",
"19th century",
"World War 1",
"World War 2",
"art deco",
"faerie",
"Jedi",
"Juggalo",
"Circus",
"Jock",
"Jungle",
"K-pop",
"Dungeon",
"Sewer",
"Viking",
"machinist",
"Manga screentone",
"Historical French",
"Military",
"Minimalist",
"Modern",
"Victorian",
"Dwarven",
"Elizabethan",
"Woodland",
"Demonic",
"Witch",
"Elven",
"Paranormal",
"Doomsday Prepper",
"Preppy",
"Psychedelic",
"Punk",
"Romantic",
"Rave",
"Redneck",
"industrial",
"Rock and roll",
"Nerd",
"highway",
"Music",
"Science fiction",
"Camping",
"Skater",
"Steampunk",
"Straight edge",
"Surfer",
"Stoner",
"Teenybopper",
"Toddler",
"Outer space"
"Alien",
"Vampire",
"Vegan",
"Vaporwave",
"Vintage",
]
modelBasis = [
"clothing set",
"furniture piece",
"room interior",
"appliance",
"bedroom",
"meeting room",
"kitchen",
"corridor",
"land vehicle",
"water vehicle",
"air vehicle",
"space vehicle",
"Weapon",
"house",
"building",
"landscaping",
"set dressings"
]
textureMethod = [
'hand-painted',
'baked',
'node-generated',
'photobashed',
'photogrammetry']
exampleSentence = "Create a texture atlas for a grungy cyberpunk building "
#culture and mood?
for i in range(100):
print('Create a texture atlas for a {} {} {} textured using a {} workflow'.format(random.choice(adjectives), random.choice(subcultures), random.choice(modelBasis), random.choice(textureMethod)))
Back in 2016 I started using Instagram. I fell off from blogging pretty hard as a result. It was such an easy, accessible place to post content, and gave you that addictive feedback loop of social media likes.
Five years later, I largely regret it. It’s not entirely instagram’s fault; for years, I had a phone with a cracked camera lens, so the photos I took are washed out. Compared to pre-instagram sketch dumps where I took the time to scan things properly, the quality is low.
But a lot of it is Instagram’s fault. It’s a hassle to hack instagram to post from the desktop. Previously I’d use a Chrome extension to cheat, and then my account would require a password change until I removed the extension, resulting in weeks without posting. Instagram’s algorithm also drives me nuts. I don’t see my friends’ art. It’s just ads, recycled memes, and semi-nude clickbait. The semi-nudity certainly is problematic for the well documented body issues of instagram, but it’s also problematic for its censorship, often anti-LGBTQ in its flavor.
I guess the simplest answer is that I don’t feel that old craving for instagram, but I’m still making content regularly, and need to get back in the habit of dumping it on m’blog. But anyhoo, here’s a farewell dump of all my old instagram art. I removed all the nonsequiteur posts. Go find me at @ogbog if you want the details on one of these moldy oldies.
If you’re curious about how to replicate this process, here’s what to do. First, use developer tools in Chrome to pretend you’re on a phone. Second, download all your old instagram content. Third, search the posts folder for .jpg or .mp4 to get all the pics and videos to upload at once on WordPress (use a Gallery block), and select ’em all.
I’m taking a watercolor class at AOEU, and the idea of a random table to generate painting prompts was floated. Whether I was inspired or procrastinating, I’m juuuust good enough at Python to shoot from the hip and try turning such an idea into code.
import random
genre = [
"Still life from imagination",
"Still life from reference",
"Portrait from reference",
"Portrait from imagination",
"Landscape from reference",
"Landscape from imagination",
"Abstract"
]
motherColor = ["red",
"orange",
"yellow",
"Green",
"Blue",
"Violet",
"B&W"]
mainBrush = ["fan brushes",
"flat brushes",
"rigger brushes",
"Watercolor pencils",
"Round brushes",
"Water pens",
"Anti-brushes"]
theme = ["Fantasy",
"Sci-fi",
"Realist",
"Cartoon",
"Food",
"Advertising",
"Horror"]
emotion= ["Happy",
"Sad",
"Calm",
"Excited",
"Fearful",
"Angry",
"Confused"]
technique = ["Wash",
"Line",
"Drybrush",
"Texture",
"Resist",
"Wet-on-wet",
"Ink"]
for i in range(6):
print('Paint a {} {}-hued {} {} using primarily {} with {}'.format(emotion[random.randint(0,6)], motherColor[random.randint(0,6)], theme[random.randint(0,6)], genre[random.randint(0,6)], mainBrush[random.randint(0,6)], technique[random.randint(0,6)]))
A couple edits come to mind, such as skipping all those lists and instead importing from a CSV, maybe using random.choice instead, and if I’m real fancy, maybe learning how to make it a button on wordpress.
So how’d the paintings turn out?






Get Version 1 here!
BodyParts3D had whole atlases of the human body that are CC-By-SA, but they were all in a web interface that wasn’t very usable. In this file, I’ve assembled them all into Blender, fixed their scales and organization (1.6 ish meters as measured by a Default Cube or Rigify template), and organized them into collections by body system.
Things this does NOT have: materials, textures, names, female anatomy, rigging, or any other goodies. But I think if you look them up on BodyParts3D by the object name, you can cross-reference the item. There are some missing chunks of data, such as the nerves. However, it’s still a great starting point. It is also limited by my knowledge of anatomy, so there might be an occasional gland floating in the digestive collection.
The plan currently underway is to clean up all the meshes (replete with bad geo), rig all this to the standardized proportions of MB-Lab using Rigify, and then I can use that to retarget and collapse the proportions of all this into a female version, and replace respective anatomy. Then the open source community will have access to a full anatomical suite in a rigged, production-ready format. Since all of these models are getting completely overhauled in the process, I’d also say that it could be released as CC-Zero.
During quarantine, with a lot of my life and free time turned upside down, I really struggled to work on 3D projects, thinking they wouldn’t go anywhere. Ironically, this became my go-to relaxation project, because it seemed like something that the rest of the world could really use for positive impact.
Access my slides here:
https://docs.google.com/presentation/d/1f_nnX4dpR7VmRLU5pC_J80D_eRcIgNlqcALYYGWJWew/edit?usp=sharing
Plus some videos: