Bad moon rising
July 22, 2012 by Chris Johnson. Filed under
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378
Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379
Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380
Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381
Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382
Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378
Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379
Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380
Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381
Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382
Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
graphics, public.
Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 3030
Deprecated: parse_str(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/class.jetpack.php on line 4255
Deprecated: Creation of dynamic property Jetpack_Carousel::$localize_strings is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.php on line 339
In reading picture books to my young son, I have come across several pictures like these:

From Sandra Boynton's Pajama Time, copyright Workman Publishing, Inc.

From Maurice Sendak's Where the Wild Things Are, Harper and Row, ©1963.
In looking at these “moon shadows,” you should get a feeling that they are not right. Why? Because at any time other than a lunar eclipse, only half the the moon’s surface has a direct path to the sun. If you look at a ball, you always see half and you don’t see half. If a light looks at a ball, it lights half directly and doesn’t light half directly. Spheres are self-shadowing, so the half away from the light source is in a shadow cast by the half near the light source, with the halves separated by a plane.

Exactly and only half the moon's surface is directly illuminated by the sun.
In the picture books, the shadows are less than half, smaller than a hemisphere. This means they can’t be self-shadows. Nor can they be Earth’s shadows cast on the moon during a lunar Eclipse, because Earth projects a shadow bigger than the moon. These shadows are simply not physically plausible. At least these books contain other implausible things, like singing pigs and rooms that turn into wild woods.
To illustrate what moon shadows are physically plausible, I have whipped up a proof-by-construction WebGL-renderer of a lit sphere. If you’re in the children’s book publishing market, give it a run before picking up your brush.
Just use a modern non-Internet Explorer browser, click on the canvas, and use the W, A, S, and D keys to move the light source.