[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)