Big shout-out to emoji for bringing fast-paced functional decay and obsolescence to text rendering. I couldn't be happier.

My humble potted plant is very expressively reaching for the sun this spring. (⌒‿⌒)

'pacman -Syu' output gets kinda unreadable when you've accumulated enough packages :geordi_dislike: ... 'pacman -Syu --print-format "%n" | sort' to the rescue! :geordi_like: (add %v to format string for version)

On apprécie les choses qui sont vieilles, on répare les choses qui sont cassées, on donne nouvel utilité aux choses qui ne sont plus utiles.

"To make the use of the web app even more convenient, guest access will be discontinued (...)"

Whose convenience? :eyeless_think: (credit to @entreprecariat for the critical inquiry technique :))

Starting today and throughout this week the PIXELvienna 14 conference for computer graphics and animation is happening again (free and mostly online). We've got a fine selection of artist talks with Q&A, and I'm especially happy that more than half of our speakers this year are queer or female, something we failed to achieve last year.

Featured artwork in this post is from Nidia Dias, [M]Dudeck & Jan Urschel.

It took me a while to acknowledge this for myself, but over the years I've developed a strong disinterest in doing traditional graphic design work using traditional tools (i.e. manual work in inkscape and such).

Recently I found that I do enjoy traditional graphic design work if I build it in code and as parametric systems, so I've decided to adopt this practice whenever I can now (and I might release some of it as free software where it makes sense).

Now for this year's Buch Wien fair I'm currently crafting a short animated presentation for the booth of a privately run scifi/fantasy/etc. library in vienna: I scanned book covers I found in the library, created a simple data manifest for the presentation (a JSON array of objects, each describing a slide - text, image path, alignment, etc.), and wrote a script (currently about 200 LOC) that renders the animated slides and pumps them through ffmpeg to get the finished booth video. \o/

I don't think I'll be going back to manual workflows. (:

Been doing some "creative coding" research for a freelance job lately, some intermediates attached! In these images the overall shape is based on 3 manual grease pencil strokes drawn in Blender, exported to JSON via python scripting, then imported into my custom javascript codebase. The lines themselves are generated by a parametric wavefront of particles which - with varying bias - follow 3 attractors that move along each of the 3 base strokes. Additionally a texture of OpenSimplex noise is repeatedly sampled at each particle location to create microdisplacements along each particle trajectory. Shoutout to Blender, and especially – I stand humble and unworthy of your free software goodness. ( ◡‿◡ *)

If you're into generative vector graphics I might have something cool for you: I finally found a workflow for script-based generation of vector primitives and text, including - and here it gets interesting - the ability to perform arbitrary scripted boolean operations between all objects (!), and the subsequent possibility to export all results as svg.

This might not look or sound like much, but to my surprise it was incredibly hard to find a library/approach for this. is what saved the day, they took on the complex and somewhat unthankful job of implementing fast and accurate boolean operations within an API and framework that is accessible and productive to work with. I've also used here to get the text as a vector path, but it seems this might be do-able in Paper.js too, possibly.

While researching this I looked into scripting inkscape with python, directly using inkscape's libgeom library, using OpenSCAD, etc. ... so as you see I was already quite desperate. :D I'd be delighted to learn if you know of any alternative approaches to get the above-mentioned workflow done. This is powerful stuff and the more ways to do it, the better. :)

Also there's now a --theming-widget cli option which injects a small overlay widget into all pages and with which one can interactively explore different color configurations for the visual theme - the configuration options are automatically generated as text and can be copied into the config file. (sorry for the weird video compression, wasn't meant to be an encoding glitch art video :D)

Show thread

Random faircamp progress excerpt: Added decoding (and thus waveform generation) for FLAC and WAV, experimented a bit with "waveform thumbnails" for the tracks of releases (might remain an experiment only), today added font customization (supplying custom files, default and custom system font stack options, etc.). I might make the system font stack the default, because environment, page load speed, non-latin scripts, etc., but let's see, in general I'm rather fond of bespoke typo choices and would rather eliminate other optional bytes on the page :)

Show thread

Threw some other albums at my waveform computation logic, and I must say I'm beginning to like this idea a lot more °˖✧◝(⁰▿⁰)◜✧˖° The juxtaposed waveforms really add quite a unique graphical signature to the albums (even, or especially, with everything else removed), and somehow just seeing some of the curious waveforms totally triggers my curiosity to hear what's going on in those tracks. :D

Show thread

Been looking a bit into the topic of waveform representation in faircamp. I like the idea of integrating something that adds a varying graphical quality to all releases and tracks without forcing the artist to provide artwork, i.e. having the system generate something graphical from the audio itself, which also has functional value ... Delicate matter anyhow, not yet sure if there will be waveforms in the end. :)

Show thread

TIL: Unsplash is rotten to the core

In a bizarre blog post [1] from December 2019, the Unsplash executives/founders present their new ad strategy "Unsplash for Brands": Devoid of any sense of ethics, they neatly lay out how advertising on unsplash itself would be ineffective and annoying - after all these ads would be identifiable as such - so old school! Instead they present their "win-win-win" idea: Instead of providing unsplash users with a mostly unbiased photo selection from independent creators, they'll give them a biased selection (paid by megacorps) of photos from non-independent creators (made by megacorps) - all the same beautiful bland hipster photography unsplash is famous for, but now filled to the brim with BRAND PRODUCTS and BRAND VALUES.

Apparently without any sense of irony, without any self-awareness at all, they present a GIF that displays a full reversal of Apple's famous 1984 ad [2] to bluntly explain their vision: From here on out, all major news outlets on this planet will stop using diverse imagery to depict (e.g.) a laptop - for now they will, in complete uniformity, show that same brand image, portray those same brand values, and best of all, no one will be annoyed, no one will even realize, that the world has been eaten by ads.


Update on the announced self-hostable alternative: Got tons of work done on the foundation over the last days (architecture, reading, transcoding, caching, syncing, configuration, cli arguments, ...). Today was the first time I did some design exporation (first glimpses attached - these are already in-browser screenshots of the functional interface, not mockups :)). I'm developing out in the open at °˖✧◝(⁰▿⁰)◜✧˖°

Show thread

On a quiet square just a few blocks from where I live there is a 24/7 museum - in a telephone booth. Even more curious is the subject on display: Bad weather! Behold, Vienna's "Schlechtwettermuseum", where it rains all day, all night. :) What a quaint and beautiful place.

Second finished piano adaptation is a bit of an oddity: The "Invincibility" theme from Sonic 3D: Flickies' Island [a.k.a. Sonic 3D Blast in the US], which was the first game I played on Sega Saturn (the only console I ever owned, maybe due to the disappointment that it got totally overshadowed by the PlayStation then).

The soundtrack of the game is by Richard Jacques and features a colorful mix of carribean beats, 90s techno, casino jazz, christmas tunes, orchestral disaster movie music ... I don't remember why I adapted this particular track, but I guess I was just lazy, it's a really short thing, and turned out more as an etude, as it's neither fun to play nor super appealing sonically speaking haha. On to the next piece! :D

Show thread

Decided to finish some of the ~20 based transcriptions I sketched out (but never completed) over the last 2-3 years:

First one done is Hirokazu Tanaka's Ending Theme for Super Mario Land (Nintendo Gameboy). In primary school I used to play through the game during the 1-hour lunch break - only so I could listen to the ending theme, which I absolutely *loved*, over and over again ... until lunch break was over and I had to shut off the Gameboy (and lose finished game state along with the tune). :D

Also: Massively grateful to the lilypond and frescobaldi developers. Writing sourcecode to create beautifully looking, statically generated sheet music (PDF/SVG/PNG): Personal heaven. <3

Show older

We are an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.

<svg xmlns="" id="hometownlogo" x="0px" y="0px" viewBox="25 40 50 20" width="100%" height="100%"><g><path d="M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z"/><path d="M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z"/><path d="M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z"/><path d="M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z"/><path d="M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z"/><path d="M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z"/><path d="M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z"/></g></svg>