[HN Gopher] "Bad Apple" in Minecraft
___________________________________________________________________
"Bad Apple" in Minecraft
Author : purplesyringa
Score : 339 points
Date : 2024-10-10 13:02 UTC (2 days ago)
(HTM) web link (purplesyringa.moe)
(TXT) w3m dump (purplesyringa.moe)
| pzmarzly wrote:
| I learned way more about computer graphics here than I expected.
| Kudos to the author.
|
| One nit: the picture that the author called "The sun" is actually
| Eirin [0] looking at the moon. In that scene [1] she's reaching
| for the moon, where she was exiled from, only to hesitate and
| retract the hand. In the next scene, Kaguya [2] also reaches for
| the moon, but does not hesitate. I'm not sure what the symbolism
| here was supposed to mean, as according to Touhou wiki it was
| Eirin's plan to steal the moon.
|
| [0] https://en.touhouwiki.net/wiki/Eirin_Yagokoro
|
| [1] https://youtu.be/FtutLA63Cp8?t=99
|
| [2] https://en.touhouwiki.net/wiki/Kaguya_Houraisan
| tmtvl wrote:
| You may have misread, the wiki says her plan was to 'seal', not
| 'steal' the passageway between Earth (or Gensokyo) and the
| Moon. Eirin deliberately chose to break her connection to the
| Moon in order to protect Kaguya.
| pxc wrote:
| > One nit: the picture that the author called "The sun" is
| actually Eirin [0] looking at the moon.
|
| I always think 'the sun' when I see it because of this goofy
| video: https://www.youtube.com/watch?v=ReblZ7o7lu4
| ConcernedCoder wrote:
| ACHIEVEMENT UNLOCKED: "Get'r Done" -- The ability to interate and
| solve individual hurdles and issues within the constraints of a
| system to achieve a grand idea.
| SCUSKU wrote:
| I don't really understand how or why Bad Apple is becoming the
| de-facto graphics rendering "hello world" but it's fun to see in
| real time. I came across this demo which uses Bad Apple for
| demonstrating high FPS hypermedia:
|
| https://data-star.dev/examples/bad_apple
| nomel wrote:
| I think it's simply that it's (mostly) black and white.
| jabroni_salad wrote:
| 2 reasons:
|
| 1. The creator is extremely cool about remixes and fanuse. In
| many ways touhou is the OG modern internet fandom in a way that
| previous ones weren't. Your bad apple video will not be taken
| down even though it has the same audio as all the others.
|
| 2. The shadow puppet format is recognizable at seemingly any
| resolution. I have seen examples in a 3x3 grid even. On top of
| that, it only has two colors (black/white, 1/0) so its dead
| simple to convert the video frames into any other format you
| can imagine with only a 'hello world' understanding of what
| you're doing.
| layer8 wrote:
| > its dead simple to convert the video frames into any other
| format you can imagine
|
| Maybe read the linked article about that. ;)
| dylan604 wrote:
| "It's grayscale, not just black-and-white."
|
| Just in case reading TFA is too daunting for those only
| reading comments
| layer8 wrote:
| I was alluding to the difficulties of frame-rate
| conversion, dithering, and compression artifacts in the
| original source being amplified by the conversion.
| Grayscale by itself isn't the issue.
| dylan604 wrote:
| But the person you replied to "it only has two colors
| (black/white, 1/0)" which is what I was referring
| layer8 wrote:
| Yes, but I don't think that black & white vs. grayscale
| makes a significant difference. Naively converting
| grayscale is virtually as "dead simple" as converting
| black & white.
| dylan604 wrote:
| You seem to be interpreting my reply as a challenge to
| your comment rather than taking as support to it. The
| original comment made an incorrect statement-as-fact with
| b&w 1/0, yet TFA clearly stated it was grayscale. Your
| comment challenged implying TFA was not read, so I just
| backstopped your comment.
| layer8 wrote:
| Your comment implied that your citation makes reading the
| article unnecessary, in the context of my initial
| comment. Since your citation didn't mention the
| difficulties I was alluding to, your comment seemed to be
| missing my point, and to those who didn't read the
| article would give the wrong impression that my comment
| was about grayscale.
| munchler wrote:
| > it only has two colors (black/white, 1/0)
|
| As the article mentions, the source video is grayscale, not
| monochrome. Grays are used for motion blur, glow, gradients,
| etc.
| dokyun wrote:
| That the video is entirely monochrome while also extremely
| fluid and intricate makes for an interesting duality when
| applying it to a technical problem, and that it's also a very
| pleasing and impressive work of art in of itself, I would think
| gives it many of the qualities that demosceners in particular
| appreciate.
| verdverm wrote:
| The DOOM standard is here:
| https://www.reddit.com/r/Doom/comments/1c0g0mi/i_made_doom_i...
|
| built on a fully programmable cpu in redstone
|
| IRIS Computer Specs:
|
| - Custom 16 bit CPU
|
| - 8 kB of RAM
|
| - 64 kB of ROM
|
| - 1 kB texture ROM
|
| - 96x64 pixel screen - 16 colours
|
| - Floating point unit (add sub mult div sqrt)
|
| - 173 redstone tick clock
|
| - No 3D graphics hardware acceleration (entirely done in
| software)
|
| - Runs programs written in URCL
|
| - Runs at 1 million ticks per second thanks to MCHPRS server -
| which is 5.8 kHz clock speed
| numpad0 wrote:
| One of less often mentioned characteristic trait of Touhou
| songs including original Bad Apple!![1] is that, at least to
| me, it more resembles a data bus status display than music; it
| makes a lot more sense to imagine it as listening to even bits
| of a 16-bit bus tied to instruments as MS-DOS boots, than music
| with regular tempo and musical measures. That's to be expected
| as these songs were created for hardcore PC-88/PC-98 shooter
| games by the developer of Touhou games all by himself without
| formal education in musical theory. I think that makes it
| rather familiar to embedded hardware engineers than most other
| music.
|
| Another factor is nicovideo.jp / nico-tech community developed
| from 2ch/futaba culture. Lots of users with way more domain
| expertise than pay or financial ambitions threw in their skills
| into remixes for fun(many were STEM students back then).
| Unidentified FPGA wizards, motor driver experts, video editors,
| would just come by and drop psychedelic videos. It was absurd.
| So absurd that Maker Faire Tokyo once put suspected nico-tech
| dress-shirts into a quarantine zone in a separate venue to save
| face for ambitious t-shirt webdevs(that was naughty, and lead
| to creation of nico-tech meetups, and also was never repeated).
| That absurd content quality-quantity density sure had created
| inertia for Bad Apple!! PVs.
|
| Undoubtedly one last key element was that the PV was
| monochromatic(okay, grayscale). That's probably why it wasn't
| one of other ones from the golden age of nicovideo.jp.
|
| 1: https://www.youtube.com/watch?v=Yw5HTeT_dis
| shagie wrote:
| There are other options. Early work with circuits controlling
| lights in Factorio :https://youtu.be/Kry8lbrHjeY and with doing
| sound https://youtu.be/b_FumvuFRXA
|
| A different video clip with color https://youtu.be/mgfwwqwxdxY
| jasonjayr wrote:
| https://www.pouet.net/prod.php?which=63591
|
| 8088 Domination used an awful lot of technical tricks to show
| Bad Apple, Full frame rate, Full screen on a real 8088 Intel
| Processor, back in 2014. As far as I know, that was the first,
| most recognized use of Bad Apple as a "demo benchmark" along
| side Doom as attempting to display it on as much hardware as
| possible.
| vessenes wrote:
| > And... that's it? Looking back, the result looks almost trivial
| to achieve, which raises the question of why no one has done it
| before.
|
| Umm, wow. I do not share that reaction to the work. This is an
| awesome dev log and closet lesson in splitting up what seems like
| an insurmountable task into nearly-impossible-but-doable chunks.
| Love it.
|
| For reference, this renders Bad Apple at 20fps in vanilla
| minecraft, with only a custom texture and some custom object
| definitions changed to allow more textures. The rest is (very
| exotic) vanilla.
| scotty79 wrote:
| I'm mostly impressed with the display of knowledge visible in
| rejected solutions.
| MrPowerGamerBR wrote:
| > Resource packs can change the music played by discs. The
| duration of the music disc stays fixed even if the audio is
| replaced
|
| You can change the music disc duration with data packs since
| Minecraft: Java Edition 1.21, you can even add new music discs
| definitions without replacing any of the vanilla music discs.
|
| I know that one of the rules was "no data packs", but hey, it is
| a cool thing if someone doesn't know about it. (also, in my
| opinion this wouldn't break the "no data packs" rule, because the
| "no data packs" rule seems mostly related to not using data packs
| to set blocks in the world)
| floydnoel wrote:
| Off topic: I was excited to see the demo video, but when I
| pressed play YouTube accused me of being a bot and refused to
| play. Apparently it protects their community. There are some
| privacy respecting alternatives, it might be good to see those
| gain traction. I'm going to try to do so myself, if i ever make
| or post a video!
| tombert wrote:
| "Bad Apple on all the things!" is one of my favorite geek trends.
| I remember the first time I saw it on the Genesis/Mega Drive I
| was astounded that such a thing was possible on such weak
| hardware.
|
| I love seeing the new ports that people make for underpowered
| stuff. I'm afraid that I'm not smart enough with low-level
| programming to ever do one myself, but I have a lot of respect
| for people that can.
| pkilgore wrote:
| > Looking back, the result looks almost trivial to achieve
|
| I wish the author was a bit more gentle on herself! What a ride.
| thaliaarchi wrote:
| That feeling seems common in hindsight. Everything seems
| easier, once all the problems have been solved. Related, I
| enjoy the author's sense of humor:
|
| > I made a prototype and, lo and behold, it was in fact slow,
| as predicted. (I'm smart.)
|
| And in another article[0], describing an inefficient collision
| algorithm:
|
| > Mojang's decision never crossed my mind. I guess I'm not a
| real programmer.
|
| [0]: https://purplesyringa.moe/blog/ru/minecraft-compares-
| arrays-...
| treyd wrote:
| Prior art is missing the one I worked on, using Sheep and Bukkit
| plugin, although that might be considered out of scope since it's
| not entirely in-game.
|
| In any case this is great work! I find it hard to imagine anyone
| improving on it.
| menx wrote:
| Also check out Bad Apple but it's a Minecraft world:
| https://www.youtube.com/watch?v=RN3QW9SVnds
| sylfn wrote:
| This is literally in the post
| NooneAtAll3 wrote:
| Bad Apple played on Minecraft sheep:
| https://www.youtube.com/watch?v=tO6sfku_1b8
| saagarjha wrote:
| Kind of amusing how much effort this puts on the actual video
| itself. When I'm done with implementing a Bad Apple I'm usually
| too tired to think about dithering or frame rate Instead I just
| run it though ffmpeg and call it a day.
| saintradon wrote:
| I haven't been addicted to Minecraft / building serious redstone
| stuff since high school. Now I just play a few times a month with
| some friends when the craving randomly comes back to just build
| and explore. Looking at the redstone landscape now it has
| completely changed and it's unrecognizable to me - I wonder if
| that's how I'll feel as I slowly become a senior software
| engineer, years pass by and I look at stacks I haven't touched
| professionally in years and wonder in awe just how rapidly things
| change in tech and what new things people are creating with it.
| 63 wrote:
| > it's even worse: redstone dust is, like, the only component
| that doesn't introduce tick delays, but it's very laggy, because
| no one at Mojang seems to know graph algorithms.
|
| It's gotten much less laggy since the post OP linked to for info
| was posted, with many improvements in the last 3 years including
| one very recently. Mojang gets _a lot_ of hate from every
| direction. It took them so long to make Redstone less laggy
| because every time they touch Redstone in any way, the community
| screams at them and any time they do anything other than
| introduce brand new features the community screams at them so it
| just wasn 't worth it. Getting mad on the Internet and saying
| they don't know graph algorithms isn't helpful. Mojang has
| _repeatedly_ hired some of the best and brightest minds in the
| Minecraft community to work for them (e.g. Panda4994, Kingbdogz,
| Gnembon) so they do have the technical expertise to do anything
| they want. What they don 't have is infinite time/budget and it
| turns out that working on a 15 year old Java codebase and a
| massive multiplatform C++ app at the same time and trying to keep
| them in sync is really damn hard so can we please give them
| grace? I'm just tired of so much hate from every direction every
| second of the day. Can we please just say that Minecraft is
| awesome? Thanks
| xnickb wrote:
| Why? It is in their power to rewrite the engine (in rust) and
| make it everything they want.
|
| It's not like they care about cross version compatibility or
| something.
| bonzini wrote:
| Sure they do. There are people who have taken worlds from 10
| years ago and brought them all the way to the latest
| Minecraft release, and breaking changes are done very
| carefully. The only two substantial nerfs that I can remember
| are zero-tick farms and fishing farms.
| sdflhasjd wrote:
| Statements like that pop up in quite a lot of programming blogs
| like these, they used to annoy me more until you realise it's
| less gloating and more naivety from the 16-21 age bracket with
| less "professional" experience.
| throwaway918299 wrote:
| This boggles my mind that something like this is even possible in
| Minecraft.
|
| I build redstone dust contraptions with my 4 year old and it
| blows my mechanical engineer father's mind but this kind of
| animation is just another plane of reality to me.
| trollied wrote:
| Now I want to see this in Factorio...
| thih9 wrote:
| Off topic, Youtube embed gives me:
|
| > Sign in to confirm that you're not a bot
|
| While viewing in safari mobile private mode. Same if I navigate
| to the youtube page. This is new for me.
|
| Switching to a different browser (firefox focus) makes that
| disappear, I can play the video without signing in.
| efilife wrote:
| A woman did this, a rare sight in the hacker community. That's so
| cool!
| scotty79 wrote:
| I'm more impressed she's 19 years old. We truly have a new
| generation of some awesome people.
| kamma wrote:
| She is transfem though, which is not that rare in hacker
| community.
| efilife wrote:
| Does it matter? You said that like she's not a woman
| nyanpasu64 wrote:
| >This recursion ends when Minecraft hits a hard limit, which by
| luck results in a yellow block being spawned instead of a red
| one.
|
| This reminds me of the old update suppression glitch
| (https://mcdf.wiki.gg/wiki/Java_Edition:Update_Suppression), or
| the trickier population suppression
| (https://mcdf.wiki.gg/wiki/Java_Edition:Population_Suppressio...)
| which can leave the game engine in a glitched state where blocks
| fall instantly.
| kmacdough wrote:
| I learned most of what I know about computer architecture from
| Minecraft CPUS. It's great to see this is still around for
| younger generations.
| packetlost wrote:
| It's amazing how much staying power Touhou has had in internet
| culture.
| fayalalebrun wrote:
| My favorite dithering algorithm for motion video is Yliluoma
| dithering: https://bisqwit.iki.fi/story/howto/dither/jy/
|
| It is especially useful for grayscale content, as finding the
| optimal dithering matrix from the available palette is a
| straightforward exact operation, and the result can be placed in
| a LUT for real-time rendering.
|
| In my opinion it looks much better than bayer or random
| dithering, especially on gradients.
___________________________________________________________________
(page generated 2024-10-12 23:00 UTC)