[HN Gopher] ASCIIMoon: The moon's phase live in ASCII art
       ___________________________________________________________________
        
       ASCIIMoon: The moon's phase live in ASCII art
        
       Author : zayat
       Score  : 259 points
       Date   : 2025-07-01 10:53 UTC (2 days ago)
        
 (HTM) web link (asciimoon.com)
 (TXT) w3m dump (asciimoon.com)
        
       | treve wrote:
       | Could use an ANSI version!
        
         | bombcar wrote:
         | and available over telnet!
        
           | julienchastang wrote:
           | That _would_ be cool!
        
             | flymasterv wrote:
             | https://wttr.in/Moon
        
               | _joel wrote:
               | curl https://wttr.in/Moon
        
           | supportengineer wrote:
           | finger moon@hostname
        
       | _aavaa_ wrote:
       | While cool it's a bit of a cop out to use a bitmap as a mask for
       | both the circular shape and the shading of the earth's shadow.
        
         | emptybits wrote:
         | I agree. And if you copy and paste the ASCII moon they have
         | there, it does already have a perfectly good circular shape to
         | it. Well done.
         | 
         | It's ASCII art. Drop the bitmap mask.
        
         | ludicrousdispla wrote:
         | Lunar phase should be showing the moon's shadow (on itself)
         | which will not be circular from our perspective on Earth except
         | during the new moon phase.
         | 
         | This looks more like what is seen during a solar eclipse.
        
           | eichin wrote:
           | Yeah, this rendering is Just Wrong - moon phase is viewing a
           | half-lit sphere from different angles, no external shadows
           | are involved. Maybe look at https://github.com/chubin/pyphoon
           | instead, which claims a history including Jef Poskanzer code
           | going back to the 1970s...
        
         | way_stone wrote:
         | If "live in ASCII art" is the pitch, it's reasonable to expect
         | ASCII itself being the part that is "live".
        
           | _aavaa_ wrote:
           | But the vectors/bitmaps aren't needed. The moon circle is
           | already done in ascii. And the shading could at least be done
           | with font color.
        
         | mlindner wrote:
         | The moon doesn't have the Earth's shadow on it though. So it's
         | wrong in that respect too.
        
       | JKCalhoun wrote:
       | Very cool.
       | 
       | I want the shadow that progresses across the moon to match
       | reality. A crescent shape that always goes through the north and
       | south poles -- that flattens as it approaches a quarter moon....
        
       | wompapumpum wrote:
       | very cool
        
       | absurdwebsite wrote:
       | Cool project!
        
       | p1mrx wrote:
       | The current shadow looks physically impossible... or it would
       | only be possible during a lunar eclipse.
       | 
       | At least there are no stars in the shadow, so they get partial
       | credit.
        
         | omoikane wrote:
         | See also: https://xkcd.com/1738/
        
           | divbzero wrote:
           | Also not possible: common representations of the star and
           | crescent.
           | 
           | https://en.wikipedia.org/wiki/Star_and_crescent#Contemporary.
           | ..
        
             | quuxplusone wrote:
             | See also: "Little-Known Types of Eclipse."
             | 
             | https://slatestarcodex.com/2019/05/02/little-known-types-
             | of-...
        
       | spicybright wrote:
       | Seeing the shadow whip across from the css animation rule when
       | going between waxing and waning gibus is real janky looking.
        
       | D___R___ wrote:
       | I remember going to a planetarium as a kid and seeing a booth
       | where you could "buy land" on the Moon (or any other planet) and
       | get a fancy certificate to prove it This project totally brings
       | back that kind of charm, but with a digital twist.
       | 
       | It took me straight back to childhood.
        
       | supportengineer wrote:
       | That's absolutely beautiful!
        
       | dandrino_ wrote:
       | A gibbous moon shouldn't look like it had a bite taken out of it
        
       | bainganbharta wrote:
       | `phoon' exists
        
       | jpecar wrote:
       | Reminds me of ACME phoon ... I used to have this in my .bashrc ;)
       | https://acme.com/software/phoon/
        
         | classichasclass wrote:
         | Likewise! That's what I was expecting to see.
        
       | SlowTao wrote:
       | While I love the ASCII art, yeah... thats not how the moon phase
       | works. At half moon it should be exactly half occluded, so like
       | it was cut in half, not just a weird circle cut out.
       | 
       | This is something that partially bothered me about GTA San
       | Andreas on Ps2. They used the same trick as here but I would give
       | them a pass because it was just a small detail on a large
       | simulation on an already very limited system.
       | 
       | There are some great bones here on the site, just need to tweak
       | the shadow and it can be a 10 out of 10.
        
         | kingstnap wrote:
         | Yeah they seem to have drawn it as a dark circle going across
         | for some reason.
         | 
         | But earth's shadows aren't what create moon phases IRL. The
         | real moon phases are from the sun lighting the moon from
         | different angles so this is just super weird.
        
           | andreareina wrote:
           | Some reason probably being that it's easier
        
             | noduerme wrote:
             | yet an incredibly basic and stupid oversight when the only
             | point of your site is to show the phase of the moon.
             | 
             | I'm voting that this was vibe-coded by an LLM on behalf of
             | someone who not only didn't write the code but didn't
             | bother to look at a picture of the moon or look at the sky
             | before deploying it. If so, it's almost the perfect
             | Platonic example of "what could possibly go wrong?"
        
               | bstsb wrote:
               | in this case the code is publicly available on github and
               | it doesn't have any obvious hallmarks of LLM generation.
               | 
               | (for example the comments are all capitalized, there's
               | inconsistent indentation)
        
             | kingstnap wrote:
             | The math isn't that bad if anyone wants to do it properly.
             | 
             | Assume y vertical and x horizontal and z out of the page.
             | 
             | The moon is a disk. x^2 + y^2 <= R^2
             | 
             | For all the points, calculate z = sqrt(R^2 - y^2 - x^2)
             | 
             | Let the vector v(theta) = <sin(theta), 0, cos(theta)> point
             | to the Sun.
             | 
             | Points <x,y,z> * v(theta) >= 0 should be bright, The rest
             | dim.
        
               | JdeBP wrote:
               | Now achieve that when your implementation constraint is
               | that you're using JavaScript to style a <div/> element.
               | (-:
               | 
               | * https://github.com/Sean-93/asciimoon/blob/main/src/comp
               | onent...
        
         | echelon wrote:
         | That's a great suggestion for a more accurate render, but I
         | want the author to know that I still think they did an amazing
         | job. It's fun and it looks great. (Your feedback was really
         | constructive, and I don't think the author will misinterpret
         | it. Some of the other commenters here, on the other hand...)
         | 
         | I have two additional feature requests:
         | 
         | 1. Persistent URLs (replaceState)
         | 
         | 2. Lunar eclipses
        
           | SlowTao wrote:
           | Absolutely they did a fantastic job, already a hundred times
           | better than any web stuff I have ever done.
        
         | panzi wrote:
         | Yeah, was about to write the same comment.
        
         | HumblyTossed wrote:
         | Yeah instead of moving a dark circle over the moon, it needs to
         | be hinged at the north and south and rotated.
        
           | JdeBP wrote:
           | It's amusing that it isn't truly a circle. It's a box with
           | rounded corners and the corner rounding radius chosen to be
           | half the box width. There is probably not a simple CSS trick
           | like that for doing the correct 2D projection of a
           | hemisphere.
        
         | dclowd9901 wrote:
         | Another suggestion: API so I can curl and get this in my
         | terminal.
        
           | namanyayg wrote:
           | no api needed https://acme.com/software/phoon/
        
           | panki27 wrote:
           | `curl wttr.in/moon`
        
         | bravesoul2 wrote:
         | https://xkcd.com/1738/
        
         | thih9 wrote:
         | This is also the standard way to present moon phases in watch
         | complications:
         | 
         | > One of the objections raised to a conventional moonphase
         | display, which shows the visible part of the Moon via an
         | aperture in the dial, is that it is not an accurate
         | representation of what you see when you actually look at the
         | Moon over the course of a month.
         | 
         | https://www.hodinkee.com/articles/the-beautifully-pointless-...
        
           | crtasm wrote:
           | I enjoyed the next part with the solution
           | 
           | >To address this problem, moonphase displays were invented
           | which use a spherical miniature Moon
        
           | Joker_vD wrote:
           | Well, let's hope nobody drills a hole in the Moon (or blows
           | the Moon up) in the next couple thousands of years, for the
           | sake of those watches' usability.
        
             | thih9 wrote:
             | It's actually safe to do that, watch owners would be
             | distracted by global cataclysms ;)
             | 
             | > Tides would be much smaller (...) But the movement of
             | tides underpins the balance of ecosystems the world over,
             | and an impact that widespread would cause global biological
             | collapse across oceans and, in turn, the whole Earth.
             | 
             | https://www.popularmechanics.com/space/moon-
             | mars/a43633761/b...
        
       | layer8 wrote:
       | The match between the ASCII part and the clipping circle breaks
       | when zooming out too much on a desktop browser.
       | 
       | Also, given sufficient character "resolution", ASCII art
       | approximates pixel art. This isn't very far from it, with (on my
       | screen) characters of 3x7 pixels. And would require a 200x78
       | character terminal to fully display.
        
       | wang_li wrote:
       | Two observations.
       | 
       | First, there comes a point when it's not ascii art, it's just
       | dithering. The use of different colors for the characters goes
       | even further from ascii art.
       | 
       | Second, opening this on my iPad results in a moon with a black
       | crescent on the bottom and an oddly shaped dark green crescent on
       | the left. What star system is this moon in?
        
       | Nition wrote:
       | This looks really nice (apart from the shape of the gibbous moon,
       | but others have already pointed that out).
       | 
       | Could you possibly detect the user's approximate location and
       | rotate the whole thing 180 degrees if they're in the southern
       | hemisphere? Down here, the moon looks technically the same, but
       | it's 180 degrees* rotated because we're standing upside-down when
       | we look at it. The craters are flipped and the light comes from
       | the opposite side.
       | 
       | *Actually it's only rotated a full 180 degrees at opposite poles,
       | and the exact rotation depends on your latitude. But perfect is
       | the enemy of good etc.
        
         | LAC-Tech wrote:
         | _Down here, the moon looks technically the same, but it 's 180
         | degrees rotated because we're standing upside-down when we look
         | at it._
         | 
         | We are standing the right way up your northernist simp.
         | 
         | They are the ones who are wrong. Never forget it.
        
           | Nition wrote:
           | This is correct of course but we would only confuse the
           | Americans.
        
             | JdeBP wrote:
             | Only the _North_ Americans. (-:
        
       | divbzero wrote:
       | Why is the bottom edge of the ASCII moon a black crescent? Is
       | that a real lunar phenomenon or just a rendering artifact in my
       | browser?
        
       | thot_experiment wrote:
       | I feel like ascii art loses something when it's not sized to a
       | standard text mode (at least to width, like 132x132 is fine). At
       | some point you're just using weird pixels and this is approaching
       | that for me. Same goes for changing the color of the characters
       | continuously; terminal colors are cool. I'm probably just a crazy
       | purist
        
         | aylons wrote:
         | It's not even just that: the shadows go mid-character, instead
         | of using characters as pixels. It is just not ASCII ART at all,
         | just some ASCII characters used as a filler.
        
           | noduerme wrote:
           | oooh. Good point. I didn't even noticd that at first glance
           | as I was floored that anyone would show off something so
           | totally wrong. But yes, not responsive ascii art if you're
           | just throwing a transparent circle over the same bunch of
           | characters.
        
         | Wowfunhappy wrote:
         | I actually feel like using color at all is cheating. I'm okay
         | with a wider width than 132 px, but it needs to be sized such
         | that you can clearly make out the letters, which I can't in the
         | TFA.
        
         | pimlottc wrote:
         | And it's within a circular mask. Half the challenge of ASCII
         | art is creating the illusion of smooth curves and edges when
         | you mostly just have blocky letters. There's barely any attempt
         | at smoothing the edges at all.
         | 
         | https://www.roysac.com/tutorial/rowanasciiarttutorial.html
        
       | CommenterPerson wrote:
       | Man this is a tough crowd to impress! (yeah I know it's off but
       | still).
        
         | 867-5309 wrote:
         | there's no cow jumping over it. author's notepad.exe licence
         | should be revoked
        
       | shagie wrote:
       | From the about page... https://asciimoon.com/about/
       | 
       | > ASCIIMoon is a small web app that tracks the moon's phases and
       | uses ASCII art to create a basic visual representation of the
       | moon's current appearance based on light percentage.
       | 
       | > This is a personal project, and is in no way a precise
       | representation.
       | 
       | https://www.moongiant.com/phase/today/ is what it should look
       | like. The moon for July 2nd should be something that is a half
       | circle illuminated and a half circle in the dark.
       | 
       | The image on asciimoon shows a circle occluding the moon where it
       | appears that the circle occluding the moon's edge is at 50%.
       | 
       | I'd have to sit down and do the math, but there is _way_ more
       | than 51.79% illuminated in today 's rendering.
       | 
       | While I recognize that this is a personal project and not a
       | precise representation... it has a fair amount of work to do to
       | make it so that the correct percentage is illuminated.
       | 
       | This does have some interesting JavaScript and css tricks... but
       | it needs some more math done.
        
       | chaoskitty wrote:
       | Is it just me, or is the site not working right now? It loads,
       | but it doesn't show the date, and the buttons don't seem to
       | change anything...
        
       | burnt-resistor wrote:
       | Nice start, but it doesn't look or feel right somehow. Keep
       | improving bit by bit. :thumbs up emoji:
        
       | adzm wrote:
       | I really wish this had libration and a way to watch it animate
       | through the phases.
        
       | tingletech wrote:
       | I made a moon phase with javascript and SVG once
       | https://github.com/tingletech/moon-phase
       | 
       | I think this is my most popular repo on github.
        
         | fractallyte wrote:
         | Very nice - I used a similar technique with SVG elliptical arcs
         | to display Moon phases!
        
       | dylan604 wrote:
       | I was really hoping this would have been a CLI command
        
         | hungmung wrote:
         | As others have mentioned, check out phoon.
         | 
         | https://www.acme.com/software/phoon/
        
       | mlindner wrote:
       | What the heck is the shape of that moon. It's completely wrong.
        
       | aussieguy1234 wrote:
       | Now we need "console moon". I type "moon" in my console, out
       | comes the moon phase with the ascii art.
        
         | shagie wrote:
         | $ phoon                            -------.
         | . .   `--.                              .       . `-.
         | .  @@@@@      `-.                               @@@@@@@   .
         | \                               @@@@@@@       . \.
         | .   @@@@@@@   O      \                               @@@@@@@@@@
         | @@@ \                            . @@@@@@@@@@@@@ o @@@@|
         | @@@@@@@@@@@@    @@  \  First Quarter +
         | o     @@@@@@@@ @@@@    |  0  8:26:49
         | .  @@   . @@@@@@@  |  Full Moon -
         | .-.     @@@   @@@@@@@  |  7 16:41:45
         | `-'   . @@@@   @@@@  o /                                     @@
         | .       |                              .  O    .     o   . /
         | .    .       /                            _   .      .   .-. /'
         | `-' /                              o    O   .   .-'
         | .    .-'                             .      .--'
         | -------'         $
         | 
         | https://github.com/Distrotech/phoon
         | 
         | https://formulae.brew.sh/formula/phoon
         | 
         | curl https://wttr.in/Moon
        
       | tolerance wrote:
       | The astronomical criticism here is warranted. But where are the
       | usual defenders of "art" here to take arms for this project's
       | interpretation of "ASCII Art"?
       | 
       | It looks cool and I imagine it wasn't easy to do. And the color
       | of the moon changes when you reload the page.
        
       | angry_albatross wrote:
       | It seems misleading to say that this is "rendered in ASCII
       | art"... more like the phase is being rendered, and it has an
       | ASCII art moon background. If I copy and paste the moon text into
       | a text editor, the phase is gone, so it's not actually part of
       | the text.
       | 
       | And as others have pointed out, phases don't work like that.
        
       | lifthrasiir wrote:
       | Besides from usual solutions like phoon, there is a winning IOCCC
       | entry that exactly does this: https://github.com/ioccc-
       | src/winner/blob/master/2000/natori/...
        
       | librasteve wrote:
       | this may help https://raku.land/zef:librasteve/Moonphase
        
       | ale42 wrote:
       | we do we need a web site for an ASCII art display? I just want a
       | command I can locally can in my terminal. And if I want it
       | online, just a telnet server ;-)
        
       | jmclnx wrote:
       | Nice!
       | 
       | You can also use xphoon(6) on Linux/*BSD to show a kind of ASCII
       | moon on your root window.
        
       ___________________________________________________________________
       (page generated 2025-07-03 23:01 UTC)