13 ms·
Show HN: The text disappears when you screenshot it
- bix6 1y agoHa cool! How’s it work?
- Lalabadie 1y agoThe only way to see the text is in the movement. The pattern across any single frame is entirely random noise.
- thaumasiotes 1y ago> The pattern across any single frame is entirely random noise. This is untrue in at least one sense. The patterning within the animated letters cycles. It is generated either by evaluating a periodic function or by reading from a file using a periodic offset.
- giveita 1y agoCan't it be continuous random noise added at the top and then moved down each frame. Roughly you create another full size rect. On each frame add a random pixel on row 1 and shift everything down. Make that rest a layer below the top one which has Hello cut out as transparent. In any single frame the result is random noise.
- thaumasiotes 1y agoYou could do that, but that's not what the page is doing. You don't even need to maintain the approach of having the pattern within the text move downwards over time. You could redraw it every frame with random data, as if it was television static. It would still be easy to read, as long as the background stayed fixed.
- ranger_danger 1y agoThey didn't mean random noise as in certifiably truly random in a cryptographic sense... nobody cares about that for a silly demo. Random noise as in a normal non-tech human cannot see anything discernable to them at all, without the motion component.
- Lalabadie 1y agoHah, late reply, but as a generative artist, the True Randomness in Computing rabbit hole has no perceivable bottom. As you said, I was _not_ alluding to more than being perceivably random/noisy.
- tgv 1y agoIt's not a great visual, but like this: https://michaelbach.de/ot/cog-Dalmatian/ https://michaelbach.de/ot/cog-Dalmatian/
- cryptoz 1y agoHad a lot of fun trying to break this. Turns out you can screenshot real easily by zooming out. Maybe there are other ways but I stopped trying :)
- sans_souse 1y agoNot sure what you mean - I can screenshot it freely that's not the point the point is if you look then at the screenshot you cant discern the text because its a single frame now
- dwg 1y agoZooming out before taking screenshot and the text is no longer obfuscated. I tried and confirmed it works. In fact, the text is perhaps even more readable than the original.
- anigbrowl 1y agoIt depends how fast or slow your GPU is. I tried it and saw the effect you described, but within a second or two it started moving and was obscured again. Obviously you could automate the problem away.
- esafak 1y agoHe's right. This is zoomed out: https://imgur.com/a/G7CKZ94 https://imgur.com/a/G7CKZ94 This is on MacOS 15.6, Chromium (BrowserOS), captured with the OS' native screenshot utility. Since I was asked about the zoom factor, I now tried simply capturing it at 100% and it was still perfectly readable... I guess the trick doesn't work on this browser.
- altcognito 1y agoFun side effect: staring at the letters for a bit makes the rest of the image move.
- Izkata 1y agoFirefox on Android seems to just be a static image, I can't see any text.
- stevage 1y agoWfm
- creatonez 1y agoProbably the result of canvas fingerprinting protection configured in your `about:config`? With a default profile it seems to work fine on Firefox for Android.
- Izkata 1y agoI haven't changed any of that on here. Looks like I consistently get just the static image when I open in a new tab then switch to it, but then if I refresh the page without switching tabs it'll show the animation.
- kemayo 1y agoThis makes me feel motion-sick, which is kind of impressive because I'm normally not easily susceptible to that.
- dylan604 1y agoHas anyone tried a long exposure to see if the motion smears into something discernible? Obviously harder to expose a bright screen without some ND since the shutter speed is the phone's main exposure control
- dasil003 1y agoHow do you take a “long exposure” screenshot? Isn’t every screenshot a perfect digital copy of a single frame or a full on video?
- dylan604 1y agoClearly, I meant using a camera, and I'm guessing you knew that too
- dice 1y agoNot the parent but that was not at all clear to me. I immediately thought of taking multiple successive instantaneous screenshots and then stacking them. I'm not sure I would have thought of using a camera within a few minutes to an hour, it's not a tool I would ever reach for normally.
- catlifeonmars 1y agoI just did this with 50% transparency. It works
- viccis 1y agoAlso not the parent but how the hell did you not understand what "long exposure" means ffs
- rkomorn 1y agoBecause the context is about screenshots and context matters "ffs".
- alliancedamages 1y agoYou can also break it by recording the screen, of course.
- deleted 1y ago[deleted]
- xnx 1y agoThis game disappears if you pause it: https://youtube.com/watch?v=Bg3RAI8uyVw https://youtube.com/watch?v=Bg3RAI8uyVw
- vunderba 1y agoThis is great - seems to be the same effect of hiding a shape using an animated noise pattern on a background of static noise. They even provide the source code for the effect: https://github.com/brantagames/noise-shader https://github.com/brantagames/noise-shader
- nomilk 1y agoFirst time seeing this, makes me smile involuntarily.
- sunrunner 1y agoThis is great. The sphere example looks especially pleasing. It also reminds me of the game The Voidness.
- robertlagrant 1y agoYes - I was thinking of this. It solves various complicated problems such as rendering distance information in this format.
- krzat 1y agoInteresting that the perception of objects/text does not disappear immediately, there is smooth fade out.
- lproven 1y agoNot really a game, but neat all the same. It reminds me of the mid-1990s video game Magic Carpet. https://en.wikipedia.org/wiki/Magic_Carpet_(video_game) https://en.wikipedia.org/wiki/Magic_Carpet_(video_game) This was a pseudo-3D game and on an ordinary display it used perspective to simulate 3D like most games. If you had 3D goggles it could use them, but I didn't. However, it could do a true 3D display on a 2D monitor using a random-dot stereogram. https://en.wikipedia.org/wiki/Random_dot_stereogram https://en.wikipedia.org/wiki/Random_dot_stereogram If you have depth perception and are able to see RDS autostereograms, then Magic Carpet did an animated one. It was a wholly remarkable affect, but for me anyway, it was really hard to watch. It felt like it was trying to rotate my eyeballs in their sockets. Very impressive, but essentially unplayable and I could only watch for a minute or two before I couldn't stand the discomfort any more.
- markasoftware 1y agosame thing, but a game: https://brantagames.itch.io/motus https://brantagames.itch.io/motus
- zikero 1y agoAnother idea I had with this concept is to make an LLM-proof captcha. Maybe humans can detect the characters in the 'motion' itself, which could be unique to us? - The captcha would be generated like this on a headless browser, and recorded as a video, which is then served to the user. - We can make the background also move in random directions, to prevent just detecting which pixels are changing and drawing an outline. - I tried also having the text itself move (bounce like the DVD logo). Somehow makes it even more readable. I definitely know nothing about how LLMs interpret video, or optics, so please let me know if this is dumb.
- deleted 1y ago[deleted]
- squigz 1y agoAs if captchas aren't painful enough for visually impaired users...
- xandrius 1y agoI don't think we need more capable people thinking of silly captchas.
- ATechGuy 1y agoWhy? stopping LLM crawlers is a need now. We've seen more capable people working for undergrad dropouts.
- pwdisswordfishz 1y agoTake N screenshots, XOR them pairwise, OR the results, then perform normal OCR.
- ranger_danger 1y agoYes but this is prohibitively expensive for a large bot network to employ. Wasn't that the whole point of Anubis?
- UltraSane 1y agoSeems trivial to diff multiple screenshots to identify what parts move. Or just use a compression algorithm to do the same.
- dazzlevolta 1y agoWould 2 screenshots be enough, I wonder?
- boothby 1y agoYeah, the letters are big enough, an xor shows the text quite clearly.
- kps 1y agoThe text reappears when I screenshot it twice.
- Syntonicles 1y agoI first saw this effect in a video from Branta Games. https://www.youtube.com/watch?v=Bg3RAI8uyVw https://www.youtube.com/watch?v=Bg3RAI8uyVw The effect is disrupted by introducing rendering artifacts, by watching the video in 144p or in this case by zooming out. I'd love to know the name of this effect, so I can read more about the fMRI studies that make use of it. What I've found so far: Random Dot Kinematogram Perceptual Organization from Motion (video of Flounder camouflage) https://www.youtube.com/watch?v=2VO10eDIyiE https://www.youtube.com/watch?v=2VO10eDIyiE
- shannifin 1y agoOthers have mentioned Branta Games, but I first saw the effect here: https://youtu.be/TdTMeNXCnTs https://youtu.be/TdTMeNXCnTs
- zem 1y agothanks, that's also the best explained one!
- cubefox 1y agoThis one is actually more sophisticated because it doesn't rely on scrolling pixels like the OP. So the object doesn't just disappear in screenshots, but also when the animation stops moving! So you can't actually display text that stands still, like the "hello" in the OP.
- optionalsquid 1y agoI'm not sure I follow. Couldn't you display text that stands still by (re)drawing the outline of the text repeatedly? It would essentially be a two frame animation
- cubefox 1y agoI believe the algorithm in the video works by flipping the pixel color when the pixel changes from foreground (some shape) to background, or from background to foreground. If the shape doesn't move, there is no such change, so it disappears. In the OP the foreground pixels continuously change (scrolling in this case) while the background doesn't change. That's a different method of separating background and foreground.
- derefr 1y agoI think the algorithm in the video is doing a very specific thing where there's a zero-width pixel-grid-clamped stroke (picture an etch-a-sketch-like seam carving "between" the bounds of pixels on the grid) moving about the grid, altering (with XOR?) anything it advances across. So, sure, you could try to implement this by having a seam that is made to "reverberate" back and forth "across" the outlining pixels of a static shape on each frame. But that's not exactly the same thing as selecting the outline of the shape itself and having those pixels update each frame. Given the way this algorithm looks to work, pushing the seam "inwards" vs "outwards" across the same set of pixels forming the outline might gather an entirely different subset of pixels, creating a lot of holes or perhaps double-counting pixels. And if you fix those problems, then you're not really using this algorithm any more; you're just doing the much-more-boring thing of taking a list of pixel positions forming the outline and updating them each frame. :)
- alanfalcon 1y agoNot technically a screenshot, I guess, but trivially easy to do with software I had lying around all the same. https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExYXloZ3Z0NTl6enFsM2Ywa2x0Z2xkazBqbjg2NjFscDE3b2R3NWhyNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/E3o06KuN4WQoeguUj9/giphy.gif https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExYXloZ3Z0NT...
- vivegi 1y agoCool. I used the Windows snipping tool and just screen-recorded it.
- catlifeonmars 1y agohttps://gist.github.com/jncornett/d7cb397ce3ceff268a0ee1b86f814a7d?permalink_comment_id=5764190#gistcomment-5764190 https://gist.github.com/jncornett/d7cb397ce3ceff268a0ee1b86f... On iPhone: screenrecord. Take screenshots every couple seconds. Overlay images with 50% transparency (I use Procreate Pocket for this part)
- CaptainOfCoit 1y agoOn Android: Take a look at the URL, see the text in plain-text :)
- catlifeonmars 1y agoNice. I did not think to look there.
- HarHarVeryFunny 1y agoA single photo is good enough as long as the exposure time is long enough to capture the motion blur.
- catlifeonmars 1y agoIf I had another camera then yes, that would have been easier. In my case I only had the one mobile device and I don’t think screenshots support long exposure.
- hbbio 1y agoCoinbase was hacked for $400M when literally someone from outsourced support services was taking screenshots on their phone! The culprit had more than 10k photos of all security details for thousands of wealthy customers.
- gloosx 1y agoIf it's even true someone from outsourced support has access to some sensitive security details then using this dumpster is almost like throwing your money out of the window.
- axiolite 1y agoYou can take TWO screenshots, moments apart, open in GIMP, paste one over the other and choose any one of these laying modes: Lighten, Screen, Addition, Darken, Multiply, Linear burn, Hard Mix, Difference, Exclusion, Subtract, Grain Extract, Grain Merge, or Luminance. https://ibb.co/DDQBJDKR https://ibb.co/DDQBJDKR
- bobmcnamara 1y agoComputer vision mode: and each screenshot together.
- LadyCailin 1y agoOr just copy the text from the url. Not very secure, really. :D
- mike_hearn 1y agoOr just ... record a video of the screen.
- whitten 1y agoWhat tool do you use to make such a video ?
- mike_hearn 1y agoOn macOS it's built in. The screenshot tool can do it. For more professional work I use ScreenFlow.
- cloudbonsai 1y ago> You can take TWO screenshots, moments apart, open in GIMP, paste one over the other and choose any one of these laying modes: You actually don't need any image editing skill. Here is a browser-only solution: 1. Take two screenshots. 2. Open these screenshots in two separate tabs on your browser. 3. Switch between tabs very, very quickly (use CTRL-Tab) Source: tested on Firefox
- viccis 1y agoFor what it's worth, there are some websites that embed some crazy shit when you screenshot. On reddit, r/CenturyClub will fill your background with a slightly off-white version of your username so that they can identify leakers, and I'm not certain how exactly they do it.
- dgan 1y agoWhat i am supposed to see here? Its just static noisy background
- davidgerard 1y agoScrenshotted fine in Xfce.
- QuiCasseRien 1y agoEven is some have found a workaround, this is a cool feature
- elAhmo 1y agoIf you blink really fast, the text almost disappears.
- magios 1y agofirefox on linux with a bunch of css stuff set to defaults or none !important shows a static image
- wink 1y agoDoesn't even show anything on LibreWolf, probably disabled WebGL as usual. I thought it was a nice error screen, but apparently it was intended, just without the text :P
- creatonez 1y agoSeems to work if you disable canvas fingerprinting protection.
- buibuibui 1y agoThis could be used for Captcha systems. Would current bots be able to decipher these?
- ranger_danger 1y agoYes, you can make ChatGPT decipher this already. But doing this on a massive scale would warm the planet. And it's not friendly accessibility-wise.
- giamma 1y agoIt's a nice effect, but I don't think it's usable in practice, because it's not accessible for visually impaired users: not enough contrast between foreground text and background
- amelius 1y agoYeah but the randomness may produce all kinds of NSFW stuff ... Also, it's even harder to read than most captchas. But fun idea, it was nice to see.
- oniony 1y agoI don't see any text: just a scrolling down screen of random black/white pixels.
- rnhmjoj 1y agoIt seems to depend on reading pixels from a canvas. This is commonly used for fingerprinting users on the web, so you have to disable some privacy plugins.
- Aeolun 1y agoThis should have an epilepsy warning. Or something of that kind. It certainly made me feel sick.
- dorianmonnier 1y agoOh yes please add a warning. My brain is burning right now!
- injidup 1y agoThis is more a curious question for those affected by epilepsy. If you know you are triggered by such things how long an exposure is required to trigger an effect. Are you able notice that media may be triggering and simply close it or is exposure and triggering almost instantaneous?
- a3w 1y agoI saw the game using this rendering weeks ago, looked okay. Now I saw a font and tried to hold on to the edges while reading it, and yes, somehow this made me more (sea) sick. Strange. Perhaps faces would be strongest in terms of reaction.
- popopo73 1y agoThis feels like when I had the spins in my college years.
- db48x 1y agoSure, but I can just record a video instead. It doesn’t disappear then!
- tamimio 1y agoIn your phone, just record the screen, then drag the player to see how every still pic blend in within the surroundings, but as soon as it moves it shows up.
- pmontra 1y agoIf anybody implements that to antiscrenshot some sensitive data, somebody else will use another phone, a tablet or a camera to record a video of it. Nice idea though.
- gwbas1c 1y agoIt's just adding friction: Someone determined will figure out a way to get the text. Sometimes friction is enough.
- jonathaneunice 1y agoOr the same one. While a screencap image hides the message, a screencap video shows it perfectly well.
- outsideoftime 1y ago[dead]
- shrikant 1y agoCould someone please post what this disappeared bit is supposed to look like? Looks legible to me when I screenshot and open in Preview on MacOS 15.6.1 (Firefox).
- grumbel 1y agoYou are probably browsing with zoom, that seems to screw up the up rendering and makes the background and text look different. It should be just black&white random pixel noise for both background and foreground, without motion the text becomes invisible, as it blends with the background.
- andai 1y agoNeat! I've seen stuff like this that works as a magic eye thing. So you cross your eyes (or make them parallel, depending on the type of image) and it makes a 3d animation appear in front of the page.
- cal85 1y agoI’d like to see an example!
- domatic1 1y agobut screen recording works :)
- p0w3n3d 1y agoThis idea has made me think of another subject - would it be possible to overload a face / car plate scanning camera by using a pattern, like qr code for exampl? Or a jacket made of qr codes?
- creata 1y agoReminds me of dazzle camouflage. https://en.wikipedia.org/wiki/Dazzle_camouflage https://en.wikipedia.org/wiki/Dazzle_camouflage
- Anonyneko 1y agoAs soon as I read the title I knew it would be akin to "Bad Apple that disappears when you pause it" https://www.youtube.com/watch?v=bVLwYa46Cf0 https://www.youtube.com/watch?v=bVLwYa46Cf0 And another version of this, using apples instead of white noise https://www.youtube.com/watch?v=r40AvHs3uJE https://www.youtube.com/watch?v=r40AvHs3uJE
- 1oooqooq 1y ago"you cannot screenshot this already illegible mess of white noise"
- creata 1y agoFun! I always wanted to make text that couldn't be recorded with a video recorder, but that doesn't seem possible. Maybe if you knew the exact framerate that the camera was recording at, you could do the same trick, but I don't think cameras are that consistent.
- jiehong 1y agoI have to admit it's a pretty cool idea. At first I was worried that there was a (stupid) API in web browsers just like on mobiles to prevent users from screenshotting something by blanking the screen in the screenshot.
- johnjreiser 1y agoAppreciate that it handles emoji as well. Can't distinguish between smileys though.
- johnjreiser 1y agoI also appreciate that Hn removes emojis from comments. :'(
- tedggh 1y agoI uploaded two images to ChatGPT and asked it to XOR them and give me the result in text.
- benob 1y agoa good benchmark for video understanding in IA
- bilsbie 1y agoUltimately people will just take photos of the screen. Seems like you’re just annoying people. I feel like there’s an ethical issue. If something is on my screen I own it. I know the law doesn’t agree but it feels right to me.
- sarreph 1y agoThe point is that it's noise and you can't "capture" a still image of the text / information (relies on motion to be viewable).
- ranger_danger 1y agoWe figured out how to capture video though. And ChatGPT can already decipher this.
- NKosmatos 1y agoNice one, the good (great?) thing is that you can save this as a plain old html and you've got the whole code :-) It hasn't got any type of license included or any other info as comments, so perhaps the creator or the OP can let us know.
- ape4 1y agoYou can pass in different text. eg: https://unscreenshottable.vercel.app/?text=Bonjour https://unscreenshottable.vercel.app/?text=Bonjour
- jszymborski 1y agoThis would make for a great effect for a technothriller. Like a cyber ransom or something like that.
- landgenoot 1y agoI think there are usecases for this. Some countries switched to identity apps instead of plastic identity cards. You could make sensitive data non-screenshottable and non-photographable. A modern variant to the passport anti identity fraud cover: https://merk.anwb.nl/transform/a9b4e52a-9ba1-414b-b199-29085ced7fc2/10802303_000100_BV1_HW-jpg?io=transform:fill,width:675&format=webp https://merk.anwb.nl/transform/a9b4e52a-9ba1-414b-b199-29085... The hotel you are checking in doesn't need to know your DOB, length, SSN, birth place, validity and document number. But they will demand a photo of the ID anyway.
- jlokier 1y ago> You could make sensitive data non-screenshottable and non-photographable. That made me curious, so I took a photo of my laptop screen running this page. With default camera settingse, the text wasn't visible to me in the photo on my phone screen. However, setting the exposure time manually to 0.5s, the text came out white on a noisy background and I could easily read it on the phone screen. I would not be surprised if the default camera settings photo could be processed ("enhance!") to make the text visible, but I didn't try.
- landgenoot 1y agoI think it also depends on the response time of the display and even the temperature.
- jerf 1y agoOn my Chrome-descended browser, the initial screen is populated by something that appears to be some sort of downsampled grid image, resulting in black and white, but also various shades of grey. However the scrolling text is pure black and white. It also seems the canvas is persistent, so the result is that text on the canvas is leaving a shadow for me, where I can still read the shadow. Somehow the initial noise is not coming out as just black and white pixels.
- landgenoot 1y agoI'm wondering. Can we also come up with something the other way around? Text you cannot read, unless you take a screenshot?
- adrianmonk 1y agoYou could probably do it with timing tricks related to video refresh. Wait until the monitor has finished refreshing, then draw the text into the framebuffer. Leave the text there a short while, but erase it before the monitor starts refreshing again. Repeat. The screenshot would have a chance of capturing the text, depending on exactly when the screenshot pulls pixel data out of the framebuffer. This might not work on certain devices. You need access to the refreshing timing information. The capture mechanism used for screenshots might also vary.
- rompic 1y agoMaybe not exactly what you meant but it reminded me about the following: When one of our apple servers failed a decade ago and just vomitted out walls of error logs too fast to read anything,the apple support guy we called took his smartphone and made some photos to read and fix the error.
- gnramires 1y agoIf you have a very high enough refresh rate display, then yes: just flash alternatingly black-over-white and white-over-black text (i.e. invert it). We perceive essentially a low-pass filtered visual input (with limitations like neural firing rate), eventually it should appear as just uniform gray. Maybe adding some confusing elements might make it feasible at lower refresh rates.
- geordieboozer 1y agoReminds me a bit of the album cover of _Any Minute Now_ by Soulwax https://upload.wikimedia.org/wikipedia/en/a/ab/AnyMinuteNow.jpg https://upload.wikimedia.org/wikipedia/en/a/ab/AnyMinuteNow....
- ge96 1y agogotta squint to see it
- EGreg 1y agoThis is good but I feel it can somehow be made better! I like the idea of motion revealing things out of randomness and screenshots are random. You can just take a screencast though hehe
- Theodores 1y ago> let textString = `hello` I think further obfuscation could be possible by uglifying the script and providing a SVG path that stores the text as some vector image. Self modifying code could be useful too, to delete the SVG data once it is in the canvas. I fully expect this to still be defeated by AI though, such is my presumption that AI is smarter than me, always. It won't care about uglification and it would just laugh to itself at my humble efforts to defeat Skynet. Regarding practical applications, nowadays kids sell weed online quite brazenly on platforms such as Instagram. Prostitutes also sell their services on Telegram. It is only a matter of time before this type of usage gets clamped down on, so there may come a time when this approach will be needed to thwart the authorities.
- marcodiego 1y agoInstead of having the pixels on the letters scrolling down, wouldn't it also work if the pixels were simply re-randomized every frame?
- NoahZuniga 1y agoyes
- dishsoap 1y agohttps://jsfiddle.net/urczexgb/ https://jsfiddle.net/urczexgb/
- leogout 1y agoIt also dissapear if you shake your phone (or computer screen but it's harder)
- itomato 1y agoWas this made with v0?
- deleted 1y ago[deleted]
- Kuinox 1y agoyou can unzoom and then it's screenshotable.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- throwaway81523 1y agoI don't see any text, just something like scrolling white noise. I'm able to screenshot it. Am I missing something?
- andersco 1y agoYes, there is a “Hello” in the noise, made visible through contrast and animation.
- birdman3131 1y agoSo windows 11 easily bypasses this when taking a screenshot. Just switch to video mode. (Yeah yeah. Not technically a screenshot but same default software built in to windows.)
- trod1234 1y agoIs this supposed to show something? All I am seeing is a static noise generated on a moving background towards the bottom. No text.
- alimbada 1y agoI managed to screenshot it just fine.
- captain123456 1y agoasdf
- captain123456 1y agoI have no idea about anyprogramming at all, but i tried to make chatgpt make a wolfenstein-like game using this concept. It doesnt work but perhaps someone will be interested in the concept: https://pastebin.com/SKAnBPMg https://pastebin.com/SKAnBPMg
- temperceve 1y agoA problem I never knew I had until now.
- LLyaudet 1y agoNobody seems to have answered yet that you can also use ImageMagick "compare" on two screenshots. compare image1 image2 -compose src diff.png See also: https://stackoverflow.com/questions/5132749/diff-an-image-using-imagemagick https://stackoverflow.com/questions/5132749/diff-an-image-us...