Skip to content(if available)orjump to list(if available)

Psychedelic Graphics: An Introduction

Psychedelic Graphics: An Introduction

43 comments

·January 23, 2025

epiccoleman

Ben - so glad I stumbled on this article. Love this kind of graphical stuff (I'm a huge sucker for psychedelia) and I really enjoyed your videos on your channel. Thanks for sharing!

dtristram

Hi, David Tristram here. founding member of Raster Masters, 1990's computer graphics performance ensemble. As @hopkins has mentioned, we used high end Silicon Graphics workstations to create synthetic imagery to accompany live music, including notably the Grateful Dead, Herbie Hancock, and Graham Nash.

After many iterations I'm currently working mainly in 2D video processing environments, Resolume Avenue and TouchDesigner. The links here are inspiring, thanks for posting.

relaxing

Do you have links to this work we could see?

DonHopkins

Who were the other people in Raster Masters, and what crazy stories from Grateful Dead concerts can you tell? ;)

Every time I've ever plugged in a modern projector into a laptop at a presentation it's so stressful, like rolling the dice if the screen will ever come up. What kind of a projector and calibration and preparation did it take to project live hires SGI video onto the screen above the band?

coffeecantcode

I’ll be honest I’m far more interested in the rolling hills article that accompanies this one.

Specifically about halfway through the process and applying:

uv.x = uv.x + sin(time + uv.x * 30.0) * 0.02; uv.y = uv.y + sin(time + uv.y * 30.0) * 0.02;

to the static image. Having experienced a range of psychedelic experiences in my life this appears to be the closest visually with the real thing, at least at low, non-heroic, doses. Maybe slow the waves down and lessen the range of motion a bit.

Note: I am far more interested in replicating the visual hallucinations induced by psychedelic compounds than by making cool visuals for concerts and shows, utmost respect for both sets of artists though.

There is an artist (and I’m sure many more) who does a fantastic job with psychedelic visuals using fully modern stacks to edit, unfortunately their account name entirely escapes me. I’ll comment below if I find it.

The comparison that I would make with this portion of the Rolling Hills article would be the mushroom tea scene from Midsommar, specifically with the tree bark. The effect of objects “breathing” and flowing is such a unique visual and I love to see artists accomplishing it in different ways.

satyarthms

If anyone wants to play around with psychedelic graphics without going too low-level, [hydra](https://hydra.ojack.xyz/) is a cool javascript based livecoding environment with a gentle learning curve.

jerjerjer

Is there anything which supports music input? I liked Winamp era visualizers, but the art seems to be dead today.

leptons

There's a lot of examples of using javascript for "psychedelic graphics" on dwitter.net

AndrewStephens

I love how easy it is to write shaders that operate on images in HTML. My skills in this area are mediocre but I love seeing how far people can take it. Even providing a simple approximation of a depth map can really make the results interesting.

Some years ago I did a similar project to smoothly crossfade (with "interesting effects") between images using some of the same techniques. My writeup (and a demo):

https://sheep.horse/2017/9/crossfading_photos_with_webgl_-_b...

cancerhacker

Early 90s, Todd Rundgren realized a Mac App called Flowfazer - it didn’t simulate your experience but was helpful as a distraction to move you along. Some people used it to provide guidance for their own creations.[2]

[1] https://grokware.com/ [2] https://m.youtube.com/watch?v=3Z4X4FmIhIw

It was a time of screensavers and palette animation.

trollied

This needs a link to shadertoy https://www.shadertoy.com

Falimonda

Wow! Thanks for sharing that!

dtristram

Regarding the OP doc and UV coordinates. A major area of investigation for us back in the day was finding interesting ways to displace the uv texture coordinates for each corner of the rectangular mesh. We used per-vertex colors, these days one would use a fragment (pixel) shader like those in ShaderToy.

A very interesting process displaces the texture coordinates by advecting them along a flow field. Use any 2D vector field and apply displacement to each coordinate iteratively. Even inaccurate explicit methods give good results.

After the coordinates have been distorted to a far distance, the image becomes unrecognizable. A simple hack is to have a "restore" force applied to the coordinates, and they spring back to their original position, like flattening a piece of mirroring foil.

Just now I am using feedback along with these displacement effects. Very small displacements applied iteratively result in motion that looks quite a bit like fluid flow.

DonHopkins

That was how Jeremy Huxtable (inventor of the original NeWS "Big Brother" Eyes that inspired XEyes) PostScript "melt" worked: choose a random rectangle, blit it with a random offset, lather, rinse, repeat, showing how by repeating a very digital square, sharp, angular effect, with a little randomness (dithering), you get a nice smooth organic effect -- this worked fine in black and white too of course -- it's just PostScript:

https://www.donhopkins.com/home/archive/news-tape/fun/melt/m...

    %!
    %
    % Date: Tue, 26 Jul 88 21:25:03 EDT
    % To: NeWS-makers@brillig.umd.edu
    % Subject: NeWS meltdown
    % From: eagle!icdoc!Ist!jh@ucbvax.Berkeley.EDU  (Jeremy Huxtable)
    % 
    % I thought it was time one of these appeared as well....

    % NeWS screen meltdown
    %
    % Jeremy Huxtable
    %
    % Mon Jul 25 17:36:06 BST 1988

    % The procedure "melt" implements the ever-popular screen meltdown feature.

    /melt {
        3 dict begin
        /c framebuffer newcanvas def
        framebuffer setcanvas clippath c reshapecanvas
        clippath pathbbox /height exch def /width exch def pop pop
        c /Transparent true put
        c /Mapped true put
        c setcanvas

        1 1 1000 {
            pop
            random 800 mul
            random 600 mul
            random width 3 index sub mul
            random height 2 index sub mul
            4 2 roll
            rectpath
            0
            random -5 mul
            copyarea
            pause
        } for

        framebuffer setcanvas
        c /Mapped false put
        /c null def
        end
    } def

    melt
Here's Jeremy's original "Big Brother" eye.ps, that was the quintessential demo of round NeWS Eyeball windows:

https://www.donhopkins.com/home/archive/news-tape/fun/eye/ey...

DonHopkins

Aaaah, remember the simple directly manipulative pleasures of Kai Power Goo:

LGR: Kai's Power Goo – Classic 90s Funware for PC!

https://www.youtube.com/watch?v=xt06OSIQ0PE

brotchie

If this is your kind of thing and you ever get a chance to see the musical artist Tipper alongside Fractaled Visions driving the visuals, you’re in for a treat.

Most spot on visual depictions of psychedelic artifacts I’ve witnessed.

Saw them together last year and it’s the no. 1 artistic experience of my life. The richness, and complexity of Fractaled Vision’s visuals are almost unbelievable.

Even knowing a lot about shader programming, etc. some of the effects I was like “wtf how did he do that”.

Here’s the set, doesn’t fully capture the experience, but gives a feel: Seeing this in 4k at 60fps was next level.

https://youtu.be/qMcqw12-eSk?si=R5mCaIbR01w3Tbyv

yieldcrv

ooo I was there

null

[deleted]

byearthithatius

The styling makes this not readable on a computer with a browser window < 1000px. You need a width attribute on .container set to 100% and set box-sizing: border-box. Right now you only have a max-width 1000px which doesn't make sense for anyone with a viewport with less width than that.

z3phyr

Slightly offtopic: Is there a way to do create meshes and animate them directly inside blender, pragmatically? Sort of like shadertoy, but instead of drawing, sculpting and rigging manually, I write some code that generates meshes and run shaders on them for effect?

zipy124

Yes, all of blender is extensible with python, and last time I used it in a project in university it was surpisingly easy to do too.

mwfogleman

Here's a music video the OP and I made with these techniques: https://www.youtube.com/watch?v=5GOciie5Pjk