Show newer

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. (:

FOSS vector graphics application "VGC Illustration" is now 100% funded for a 1.0 release in july 2022! kickstarter.com/projects/vgcso Thanks everyone for spreading the word, I'll cut back on commercial content now again. (*/▽\*)

Show thread

Here's an opportunity to write some FOSS graphics history, everyone: "VGC Illustration" presents a technologically novel - and having tried it I will say *artistically superior* - approach to illustrative vector graphics. It's developed by a 1 (soon 2) person team that has serious industry and technical research credentials (Pixar, Siggraph) while at the same time being fervent open source lovers and actually developing their research as FOSS since years. Boris (the lead dev) has now fully dedicated his life mission to making VGC Illustration (and soon Animation) a sustainable open source business, and all he's asking for is pretty much peanuts considering the magnitude and scope this could soon have. If the kickstarter (which started only an hour ago and is already 10% funded!) does not work out, VGC is probably dead, so I think this is a lifetime opportunity for us to give support to establish a new powerful player and unique technological cornerstone in FOSS graphics. To conclude: Please, for the love of FOSS, throw money at this! :)

kickstarter.com/projects/vgcso

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, github.com/Automattic/node-can and especially github.com/joshforisha/open-si – I stand humble and unworthy of your free software goodness. ( ◡‿◡ *)

Simon Repp boosted

I wrote an article about the need for low-carbon and #sustainable #computing and the path towards zero-carbon computing.

In short, we need to dramatically limit the growth in emissions from computing, or by 2040 emissions from computing alone will be close to half the emissions level acceptable to keep global warming below 2°C.

And it is possible to do this.

https://wimvanderbauwhede.github.io/articles/frugal-computing/

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. paperjs.org/ 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 github.com/opentypejs/opentype 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. :)

Are there interesting examples on the web for deliberate extreme video processing/compression techniques that address the ever-growing ecological impact of video streaming?

I'm specifically looking for general purpose approaches that use ubiquituous tech (e.g. gif, h264 coding, ascii video), not patent-pending AI facial reconstruction tech or handmade ASCII movies ;) - although if you have some completely out-of-the-box thoughts on the topic I'd be very curious to hear about them too!

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

TIL: Take uncompressed audio with a sample peak not below -1.0 and not above 1.0, send it through an mp3 encoding/decoding round-trip, and it might come out with a sample peak below -1.0 and above 1.0 (!). This is (depending on encoding parameters) by design, and encoders expect decoders (or its consumers) to clamp/clip these peak overshoots themselves. Reality never ceases to surprise me with new intricacies where I didn't expect them. :)

github.com/notviri/rmp3/issues

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

Skin cancer prevention now commodified as an app with subscription model, development and research naturally supported and co-financed by the state, hospitals, universities & patients' data - market you can take over for the profits now. Also tough luck if you're a little too un-white, sorry, no training data! Subscribe now and "be one step ahead in the race to beat skin cancer!" This is fine!

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.

[1] unsplash.com/blog/introducing-
[2] youtu.be/VtvjbmoDx-I

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 codeberg.org/simonrepp/faircam °˖✧◝(⁰▿⁰)◜✧˖°

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.

Development Teaser: I'm working on a self-hostable alternative - implemented as a static site generator written in

As a small tech tradeoff and an experiment I'm integrating a soft paycurtain: Albums can display a price tag, (including a user interaction for setting a price for "name your price" albums), payment directions are given (Liberapay, SEPA, etc. as configured), but the payment itself is not technically enforced, i.e. the listener is asked to affirm by themselves - by clicking a button - that they have paid for what they want, and only then given the download link. I'm open to experiment further with this when I've released faircamp (current codename) to the public. I could also imagine an option for integrating a hard paywall based on entering a token that could e.g. be made exclusively available to your backers on an external platform (ghost, patreon, steady, paypal, ...).

Been fleshing out the first prototype all day today, and having a blast! ✌️

Research text investigating Bandcamp and Soundcloud as specifically "producer-oriented" audio platforms:

journals.sagepub.com/doi/10.11

Bandcamp keeps surprising me: Founded by two guys out of Silicon Valley who sold their previous company to Yahoo, huge turnover, not open source, took in Venture Capital in the past, yet everything looks pretty dandy as far as I can see: Small (and judging by their team photo pretty diverse) team, no nonsense tech and business model, no trendchasing, no hype, no scandals, no nothing. To aptly quote their blog: "Maybe the future isn’t a dumpster fire after all."

Show older
post.lurk.org

Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.

<svg xmlns="http://www.w3.org/2000/svg" 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>