• Coming back from a couple of days of trying out many setting in Photoshop and my Wacom, I have concluded that I need to actually learn using Photoshop.

    Luckily, I have come prepared, and already have just the right book for that.

    I want to make a note here about how strange it is that using something like Photoshop first requires treating it like a whole workplace in itself.

    Like nesting dolls, I have setup my laptop workplace inside my larger workplace, and now I have to setup the Photoshop workplace inside of my laptop.

    Plus, I have invested in Lazy Nezumi Pro, because brush smoothing in Photoshop is f*cked since 2019.

    I don’t even want to talk about it. I’ve spent many hours on trying to fix this issue, only to do like everyone else did: turn off Smoothing (not just put it to 0%, turn it off), buy Lazy Nezumi Pro.

    Trying out another system for scheduling, I think my timezone is basically dead on Tumblr. Went UTC between 6pm and 12am for this.

    Source: My after‑hours blog on Tumblr Code & Canvas

  • Gerade die perfekte Dosis Spaß hier. 🤓 Die Shaderpinsel in #BlackInk sind einfach wild 🐗 und obwohl ich kaum Controller nutze, erfüllt sich langsam ein Traum: programmatisch Grafiken bauen. 💻🖌️
    @blackink.bleank
    #Shaderbrush #GenerativeArt #DigitalArt #BlackInk #ShaderPinsel #CreativeCoding #ArtProcess #VisualProgramming #Wacom

    Source: My Instagram account Mario Breskic

  • Guten Morgen aus der Werkstatt: ich konnte Boden im Umgang mit den programmatischen Pinseln von #BlackInk gewinnen. Den Code für den Shader poste ich einfach hier rein, die Controller darf jeder nach eigenem Ermessen zusammenstecken.
    BlackInk ist das wahrscheinlich am schlechtesten dokumentierte Stück Grafiksoftware, das mir bisher unterkam, aber das hat auch seinen Reiz: man muss es knacken, man kämpft sich ab.
    Ich freue mich schon auf die nächste Wochenzusammenfassung auf Code & Canvas. Und auf weitere Arbeiten mit dieser Software.
    #glitch #glitchbrush #bleedingcrt #buildinpubliccfg {
    name = „DEBUG Vertical RGB Stripes“;
    renderingTime = 60;
    }

    float4 main(idatas i) {
    // Normalize stroke space UVs
    box2 b = box2FromCenterAxe(i.strokeStartPos, length(i.strokePos – i.strokeStartPos), normalizeSafe(i.strokePos – i.strokeStartPos));
    float2 uv = 4 * b.toCenter(i.pos) / b.size;

    // Scale up horizontal frequency
    float stripe = floor(uv.x * 60); // visible stripes

    // Simple stripe pattern: R, G, B
    float3 col = float3(0.0, 0.0, 0.0);
    if (mod(stripe, 3) == 0) {
    col.r = 1.0;
    } else if (mod(stripe, 3) == 1) {
    col.g = 1.0;
    } else {
    col.b = 1.0;
    }

    return float4(col, 1.0);
    }

    Source: My Instagram account Mario Breskic

  • Hey everyone! I wanted to share a little story about a recent frustration that turned into a small coding adventure. If you’re into digital art, scripting, or just curious about how I hack my workflow with a Wacom and Photoshop, this one’s for you. It’s a mix of trial and error, some helpful AI assistance, and the realities of working with Adobe’s scripting quirks. Here’s how a simple idea grew into a few scripts I’m actually pretty proud of.

    It’s probably well into Monday by the time you’re reading this, because I’m writing it a bit after midnight.

    There was a minor grievance with how Photoshop doesn’t interact with my Wacom tablet; and that small annoyance somehow turned into two scripts (three, really) I built with the help of ChatGPT to address the issue.

    What I wanted was simple: adjust the flow of a brush in Photoshop using the Wacom tablet’s Ring Menu.

    The idea seemed straightforward: turn clockwise to increase the flow value, counter‑clockwise to reduce it; just like how you can zoom or rotate the canvas in Photoshop. I assumed there’d be hotkeys for increasing and decreasing flow that I could bind to the Ring Menu.

    But those hotkeys? They don’t exist. Sure, you can use Shift + (0–9) to directly set the flow value, but that’s not what I was after. It’s functional, but not how I want things to work.

    So I asked ChatGPT how a script would look that toggles a brush’s blend mode between Normal and Multiply, just to get started. I cleaned up the output using Copilot, admittedly got a bit carried away, tested it, and…it worked! At the push of an ExpressKey, I could switch blend modes.

    I posted that script to Stack Overflow, asking for feedback on the quality of an LLM’s output. Turns out, they have a ban on LLM-generated content. Got my downvotes.

    Anyway.

    Next, I tackled what I really wanted: using the tablet’s ring input to control brush flow. I told ChatGPT what I had in mind, and got a script in return.

    And it worked exactly as intended. It let me adjust flow by rotating the Ring—and it felt fast and snappy.

    But there was a catch: it didn’t retain any of the other brush settings. Instead, it reset everything to Photoshop’s default brush when applied.

    That’s when I visited the Adobe Community forums for the first time. I browsed around, read what others had done with ExtendScript—and I was genuinely amazed. I upvoted. I even commented.

    Eventually, I posted my issue. [Here’s the thread, if you’re curious.] Someone responded and suggested I adapt a script from another post, and I did.

    It worked. Kind of.

    See, the adapted version was (and still is, as of this writing) slow. Unlike the earlier, snappy version that only touched the flow value, this one has to read, store, and then re-apply all the other brush properties every time it’s called. So if you do a quick half-circle on the Ring, you’ll be watching the flow change lag behind for a while after you’ve stopped rotating. (Fun fact: the Ring doesn’t physically rotate; Wacom employs witches and wizards, obviously)

    But it worked and that’s something. Since the bottleneck is due to how Photoshop’s scripting interface works, not my implementation, I decided to upload the scripts to GitHub. For myself (should someone find a better solution), and for others (should this be the best workaround we’ve got).

    At some point, I asked ChatGPT:

    “This is so confusing. Why can’t we just add the changed value for flow to the existing brush settings, and leave everything else untouched?”

    And it answered:

    “TL;DR: You can’t just ‘set flow’ without overwriting everything else, because Photoshop scripting doesn’t support partial updates to ActionDescriptors.”

    And that’s where things stand: somewhere between not as fast as it could be in a better world (where Adobe supports partial updates), and doing it all manually, dragging sliders around with the mouse.

    The other thing I did this week was build a custom RSS parser in Huginn for my Goodreads “read” shelf. With ChatGPT helping me outline the approach, everything went surprisingly smoothly.

    Goodreads user bookshelf page titled "My Books." Five books are listed under the "Currently Reading" shelf. "Songs of a Dead Dreamer and Grimscribe" by Thomas Ligotti. Average rating: 3.96. Shelves: currently-reading, fiction, horror, shortstories. "Area X: The Southern Reach Trilogy" by Jeff VanderMeer. Average rating: 3.86. Shelves: currently-reading, fiction, horror, sciencefiction. "Photoshop-Basiswissen: Malen und Zeichnen" by Doc Baumann. Average rating: 5.00. Shelves: currently-reading, art, design, grafikdesignbücher. "Die Antiquiertheit des Menschen Bd. I" by Günther Anders. Average rating: 4.33. Shelves: currently-reading, nonfiction, philosophy, sociology. "Praxishandbuch Gestaltungsraster" by Andreas Maxbauer. Average rating: not available. Shelves: to-read, design, grafikdesignbücher. Navigation links are present for pages 1, 2, and 3. Sidebar on the left lists 44 total shelves including categories like nonfiction, grafikdesignbooks, design, and currently-reading.

    Since I wanted to post to Twitter/X and Threads every time I finished a book—and include its genre as hashtags—I started adding custom shelves on Goodreads for genres.

    These genre shelves show up in the RSS feed that Goodreads generates, which made them accessible for automation.

    However, because IFTTT can’t really parse RSS feeds to manipulate or modify content (like extracting specific info or adding hashtags), I turned to Huginn—a trusty old friend whose scripting language I had completely forgotten.

    Thanks to guidance from ChatGPT and some trial and error, I ended up with an internal setup in Huginn that looks like this:

    Flowchart titled "Goodreads's Agent Event Flow – Huginn." The top node is "Goodreads RSS Read Books Fetcher", with green badge labeled “4” indicating event propagation. It splits into two parallel branches: Left Branch (for Twitter): Node: "Goodreads Event Formatter For Twitter" (event badge: 4) Arrow points to: "Goodreads Output Agent for Twitter" Right Branch (for Threads): Node: "Goodreads Event Formatter For Threads" (event badge: 4) Arrow points to: "Goodreads Output Agent for Threads" Each branch represents a formatting and posting pipeline based on data fetched from a Goodreads RSS feed.

    And it works! I expect to need some more tweaking, though. There’s a bit of randomness in the setup: ChatGPT suggested using a modulo operation on the date to select one out of six variations of the text “Read: [Title of book]” to send to the Output agent, so my posts don’t look exactly the same every time.

    I’m not sure if or when I’ll add this script to my GitHub, but chances are good. For now, I really need some sleep; these late nights chasing dragons through trial and error must come to an end.

    So that’s the update from my digital studio. Sometimes it’s just a small inconvenience that sparks the biggest creative experiments; and occasionally, a friendly AI and some forums can make all the difference. If you’re tinkering with Photoshop scripts, Wacom gadgets, or automation like me, I hope this gives you a bit of inspiration or at least a relatable story. I’ll keep sharing these little journeys as they come. Thanks for reading! This was fun!

    Source: My after‑hours blog on Tumblr Code & Canvas

  • Das alles sollte ziemlich cool werden. In 12 Stunden weiß ich mehr. #ifttt #huginn #asca

    Source: My Twitter Account Mario Breskic

  • Teste Goodreads via huginn zu IFTTT

    #asca

    Source: My Twitter Account Mario Breskic

  • #asca Dank dem Feed ist das Buch „Flexible Visual System“ gerade unterwegs zu mir @slanted_blog

    Das wird ein fantastischer Zusatz zu Poschauko & Poschaukos „Nea Machina“ @VerlagHSchmidt

    #bücherei #designbücher
    Das, und das Buch der Sprachlichen Zweifelsfälle @Dudenverlag https://x.com/medienfeed/status/1943601724075212820

    Source: My Twitter Account Mario Breskic

  • Neu https://github.com/mariobreskic/Tools-For-Photoshop Tools for Photoshop v 1. 0. 1

    #asca

    Source: My Twitter Account Mario Breskic

  • Shoutout to c. pfaffenbichler on the Adobe community forums.

    #asca

    Source: My Twitter Account Mario Breskic

  • Werde mehr nutzen. Dafür weniger Social Media. Habe mit ein mächtiges Werkzeug gefunden, das mir ein zielgerichtetes Lesen erleichtert, anstatt, wie mir gerade erklärt hat, auf Social Media so lange zu lesen, bis sich bei mir kognitive Erschöpfung, sinkende Aufmerksamkeitsspannen, sowie steigende Symptome von Depression und Angst abzeichnen.

    Und eine Trennung von Arbeitszeit von Freizeit will mir auch noch gelingen.

    Source: My Mastodon Instance Mario Breskic