235 pointsby purplesyringa2 days ago14 comments
  • pzmarzly11 hours ago
    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

    • pxc8 hours ago
      > 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

    • tmtvl10 hours ago
      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.
  • SCUSKU11 hours ago
    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

    • jabroni_salad10 hours ago
      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.

      • munchleran hour ago
        > 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.

      • layer810 hours ago
        > its dead simple to convert the video frames into any other format you can imagine

        Maybe read the linked article about that. ;)

        • dylan6049 hours ago
          "It’s grayscale, not just black-and-white."

          Just in case reading TFA is too daunting for those only reading comments

          • layer89 hours ago
            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.
            • dylan6049 hours ago
              But the person you replied to "it only has two colors (black/white, 1/0)" which is what I was referring
              • layer88 hours ago
                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.
                • dylan6048 hours ago
                  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.
                  • layer88 hours ago
                    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.
        • 10 hours ago
          undefined
    • numpad032 minutes ago
      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

    • verdverm9 hours ago
      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

    • dokyun10 hours ago
      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.
    • nomel10 hours ago
      I think it's simply that it's (mostly) black and white.
  • tombert9 hours ago
    "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.

  • 634 hours ago
    > 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

  • saintradon6 hours ago
    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.
  • saagarjha7 hours ago
    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.
  • vessenes10 hours ago
    > 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.

  • throwaway9182994 hours ago
    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.

  • ConcernedCoder11 hours ago
    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.
  • menx7 hours ago
    Also check out Bad Apple but it's a Minecraft world: https://www.youtube.com/watch?v=RN3QW9SVnds
  • pkilgore8 hours ago
    > Looking back, the result looks almost trivial to achieve

    I wish the author was a bit more gentle on herself! What a ride.

    • thaliaarchi3 hours ago
      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-...

  • MrPowerGamerBR10 hours ago
    > 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)

  • treyd7 hours ago
    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.

  • floydnoel9 hours ago
    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!