Ok, I've got a few friends who are epileptic and who I think would really enjoy algoraves except I daren't invite them because of the prevalence of flashing lights.

Visuals are live coded, so we can't just ask people not to make dramatic blinks, as live coding is inherently serendipitous, with unexpected results. Flashes are inevitable at the point of the HDMI output port.

However, I wonder if there might be additional options to increase accessibility. Our normal practice is to plug directly into a projector, but I think we could have an intermediate filter that detects the kind of value changes that are like to trigger a seizure and can fade them more slowly. Does something like this exist off the shelf?

Is there a way to add this kind of filter to web based languages so web pages can optionally operate in a safe mode?

I'm not saying "no strobes ever" but it would be extremely good of we could say "no strobes sometimes."

#algorave #livecode #accessibility

@celesteh reminded of something @hellocatfood told me about a piece he made for public display having to get OKed for not being an epilepsy trigger. There was some software that was doing the checking, but it was closed source, commercial, and/or not available to the public, so it wasn't clear what it was actually checking for ๐Ÿคทโ€โ™‚๏ธ

@rumblesan @celesteh That'll be this thing https://www.hellocatfood.com/potentially-harmful/ (10 years old in two days!)

The software the broadcasters were using is closed source and analyses already rendered videos.

For something to work on a live feed there'd have to be a frame delay for it to analyse x incoming frames and then do _something_ to them, which isn't ideal for precise timing of visuals.

I think onus needs to be on the person making the visuals. In hydra there's a function to interpolate between values and the speed of this can be controlled. But it can't protect against flashes due to feedback loops.

@hellocatfood @rumblesan

The BBC uses some software for this which is incredibly expensive.

However, there exists a public formula for calculating contrast, normally used to check if a text and background are distant enough. That formula can probably be used to check contrast differences between adjacent frames.

I think that the delay can be mitigated by comparing to already output frames rather than looking ahead. So for time t (for every pixel?)
a = contrast(t, t-1);
If a <= y, then output t and save it to t-1.

Else t = t + ((t - 1) / a), then output t and save it to t-1

I think this would create a running average and do fading based on contrast, with fairly minimal delay, depending on frame rate.

Unfortunately, I don't know how to test it without access to the broadcast software because it's not like I can ask an epileptic person to rate the results....

A white square bouncing around a black screen is safe and doesn't need a fade trail, so this isn't really right, but its computationally cheap and would probably solve the problem. But if it doesn't we've wandered into a liability dilemma which is why nobody is going to release a floss version of this, nor make it available via a free API. Its expensive because mistakes are incredibly costly.

@hellocatfood interesting read. i see now pattern-sensitive epilepsy makes this an even more complex problem than i thought

@rumblesan @celesteh

@celesteh as a brother to a sibling who had epileptic seizures and died by way of such a fit I often wonder why there's so little sensitivity to people with epilepsy. most common moment are flashing bicycle lamps.

while i personally enjoy fast strobe used in an artistic way (รก la Ryoichi Kurokawa or Ryoji Ikeda), i rather appreciate your consideration and miss more thoughts in this direction

@prinlu @celesteh

so sorry about your sibling

thanks for mentioning the bicycle lights as possible triggers, it's not something I would have thought of. my rear light is set to blink between full and half intensity at about 1hz, I'll have to reevaluate that.

@prinlu

I'm so sorry to hear of your loss.

I had been wondering about bicycle lights. I find the incredibly bright flashing lights to be disorienting and had wondered if they were dangerous. I'm sad to hear that they are. This is a problem with a regulatory solution ....

I've heard that Ikeda's glitches are actually constructed in a way that is not triggering.

@celesteh i recently learned that even the common in-editor text flash which indicates evaluating a block of code can be a seizure trigger. which makes sense, i just never thought about it

the anime industry uses some sort of contrast-decreasing + frame blending filter since that infamous pokemon episode happened. it seems like something similar could be designed for real-time postprocessing too

@ahihi

There's been posts recently about an open source video mixer. I think a couple of those (one for each screen) could be part of a solution for in-person.

There are also some browser plugins which are worth taking a look at. We could sign post to these from pages like nudel.cc, to be more accessible to remote participants.

I mean, we should also ask people not to strobe (or have clearer warnings for when strobes will be used) but I do think this calls for a belt and braces approach so more than one thing has to go wrong for a mistake to get into the projector.