Statistics on Children’s Books


, ,

Leo has gotten very interested in interesting data graphics. To be honest, he’s always been pretty interested in complex drawings; Since he was old enough to draw articulately, he’s drawn very complex mazes and maze-like pictures; never (or rarely) “artistic” sorts of things (like paintings). And he’s always been interested in the probabilities of things happening (like the likelihood of various things happening in his Minecraft play, for example, what’s the probability of an Enderman spawning with and ender-crystals … 1/420, FWIW — dunno!) And todayFiveThirtyEight published their annual favorite crazy graphics posting, which I showed him, and he was fascinated by, and went on to read the last 4 year’s worth as well!

So in today’s math session we started into “real” stats, with t-tests. Now, it turns out to be harder than you’d think to find a good example of something to run a hypothesis-testing experiment. I considered loading some dice, or making an unfair coin, or even just programming a load dice/coin. But it’s hard to make something that’s loaded in an interesting way. After a while thinking on this, I came up with what turned out to be a surprisingly good domain: The length of children’s vs. adult (or, at least older children’s) books. You’d think that it would be obvious that children’s books would be shorter, but, as it turns out, it’s not that simple. (Nothing ever is!)

We drew books from Leo and Ada’s bookshelves, where “adult” was a Leo book, and “child” was an Ada book. We also recorded whether the book was a “technical” (science or math) book, or not. (An example of an Ada technical book might be a counting book, or a book on butterflies. More on this later.) I tried to draw the book more-or-less at random, but lots of Ada’s books are so short and “child”-oriented that they don’t even have page numbers, and I wasn’t about to count them all up, so that almost certainly introduced a bias.

The experimental apparatus:


Anyway, we tabulated the child vs. adult books and computed some EDA (means and SDs):

I explained the t-test, and we looked at the equations, but we actually ran it on my go-to online quick stats site: Vassarstats:

Since we had a directional hypothesis (that children’s books were shorter), we can use the 1-tailed result of p=0.054, and claim the usual cheat of “marginal significance”.

So, this turned out to be way less clear-cut than either Leo or I thought it would be. We talked about some reasons that this might be the case. The top idea is the bias introduced by many of the shorter children’s books not having page numbers. Also, some of the longer children’s books actually had a number of stories under one cover. We actually thought about this when we were conducting the experiment, but decided not to change anything based on this because, after all, lots of the adult books have multiple chapters as well.

Oh….right, the technical book thing from above…I had the idea that we would “pivot” the data to look at the lengths of technical vs. non-technical books, and maybe even run a more interesting statistic, like a Chi-Square. Unfortunately, there weren’t enough technical books in the children’s category, so the statistics would have been badly skewed. Next time! 🙂


A Minecraft Game Theory MiniCamp


, , ,

I did a brief Game Theory camp with Leo and one of his friends, Justin. It was just a half-day camp (although we may do another half-day in a a couple weeks). We started out by talking about the three central concepts in game theory: Strategy, Payoffs, and Signaling. We divided signaling into the 2×2: Intentional vs. Accidental x Truthful vs. Deceitful:

After discussing these a bit, Leo and Justin played several Minecraft-based games (Bed Wars, Bow Spleef [don’t ask me!]Bow Spleef [don’t ask me!], and TNT Wizards) and afterward we discussed how the above concepts arose in each game.

We only had three hours altogether, and unsurprisingly, the kids were more into game playing than the game theory, however, we did discover a bunch of interesting phenomena in just this brief period using these few games.

It was hard to make payoff matrices for these games. The costs in the payoff matrix are complex, mainly wasted time, and the payoffs, because there’s no real money, are hard to measure (you get emerald, or something like that). Later we also played a simpler game called “Kuhn Poker” in order to explore payoffs in a bit more detail, although I have to say that that was too simple, I think.

The signaling in this setting turned out to be really interesting. Because the game is both cooperative and competitive, and the in-game chat channel is public, it’s hard to do back-channel communication, so everything you do to cooperate with your team-mates is signaled to your competitors. HOWEVER, because Leo and Justin are sitting right next to one another (see above pic!), they have a private back-channel, sort of like the way that teams collude in online poker (called “ghosting”).

I might update this if we take it up again next week.


Right-sizing Minecraft (A Whirlwind Exercise in Scientific Notation)


, , ,

This post is part of a series that Leo and I are developing about teaching math through Minecraft. The topics of this post are (a) estimation, (b) giant numbers, (c) binary [as in computer representation, and powers of 2], and (d) thinking in scientific/exponential notation. You can see some of our other posts related to Minecraft math here, herehere, here, and here, and we’re working on two big ones that will be posted soon.

Leo has been playing a lot of D&D recently (somewhat instead of Minecraft, which is probably a good thing). He likes to play the role of DM, but he’s not great at creating concise, solvable challenges with good clues, so the players end up wandering around in an infinite space, wondering what to do next. 

I hypothesized that he prefers this of world because this is how Minecraft works; The size of the Minecraft world is indirectly constrained by the 64 bit arithmetic limits of the computer. The worlds are 60M blocks wide in each of the X and Z directions (the ground coordinate space in Minecraft is XZ; Y is up and down; it’s only 256 blocks in the up and down direction, Y). Actually the world only goes to 30 million blocks in each direction, not, as one might expect, 2^63, which would be 9,223,372,036,854,775,808. The reason they limit the world to only 30M in each direction (60M edge to edge) is that graphics and physics algorithms, which depend upon real value math start to break after that point, and weird stuff starts happening, like the hit boxes surrounding blocks are anomalously separated from one another letting you you fall through invisible cracks, and such like nonsense.

Regardless, a 60M block squared space is plenty big. Too big, in fact! Each world is so big, and there are so many possible worlds, that Minecraft should probably be called Wanderworld instead! 

So, how big should Minecraft be? How would we figure this out?

We started with the hypothesis that Minecraft would be more interesting if the density of “interesting” worlds was high enough that the community of ~100 million active players could effectively explore the entire universe, and share interesting findings with one another. One way of approaching this is to ask: If every active Minecrafter was in the same world, how much space would they each have?

Mojang claims that there about 100M active Minecrafters. We’re not going to worry about what “active” means, and just take Mojang’s word for it. That’s 1e8 players. And the world is 60M^2 square blocks (sqb), which is ~6e7*6e7 = ~3.6e15sqb. Divided by 1e8: 3.6e15/1e8=3.6e7sqb/player, and the square root of that is 6e3, or 6,000blocks. So if every active Minecrafter was spread across a single world, each one would have a 6k-by-6k space to explore and build in. The maximum flight speed in Minecraft is about 10 blocks/second, so it would take you ~6000/10=~600sec=~10 minutes just to fly across your space, much less do anything in all that space! Why would anyone need more?!

Unfortunately, the Minecraft universe is WAY bigger even than that, because the world generation algorithm is controlled by a 32 bit randomly generated random number seed. So there’s actually ~4.2e8 (precisely: 4,294,967,296) of those 3.6e15sqb worlds, so the total Minecraft space is ~1.5e24 square blocks! 

Since a Minecraft block is supposed to be about a cubic meter (sq. meter since we only care about surfaces here), it’s interesting to think about how to compare this with the REAL Observable Universe (ROU), but it’s not entirely clear what the right comparison is. The radius of the ROU is ~4.5e26 meters, so its 3D volume (using 3 here for pi in all cases) is (4/3)pi*(r^3) = ~3.6e80 cubic meters. But that’s not quite the right comparison because every Minecraft world is the same size, so it’s really more like you have a giant cylinder of the radial ROU circle. That radial circle is pi*(r^2)  = ~4e15 square (1 meter deep) blocks, and stacking 4.5e26 of those on top of one another is ~2e42 cubic blocks. This  cylindrical ROU is about 2e24/2e42 or about 18 orders of magnitude larger that the Minecraft universe, including the random seeds. Okay, so it’s not even close to the size of the Real universe, so it’s not THAT ridiculous, still….

(By the way, along the way to all this, we noticed a useful fact, which I’m sure is not novel, but is at least vaguely interesting. Turns out that because log(10,2) = almost exactly 0.3 (actually 0.3010…), by the trick for computing logs of random bases: log(b,x)=log(n,x)/log(n,b), if you use n=10, which is easy to estimate for any decimal number, turns out that the number of bits needed to represent any number is approximately the number of digits in that number number divided by 0.3 (or times 1/0.3 i.e., times 3.333…). So, let’s say that there are 80 million Minecraft players, being 1e8, or even better, using the first digit in the tenths place, and backing down one order of magnitude, that is: 8e7, and reversing those to 7.8 (because you care more about the order of magnitude than the first digit, which is actually just a correction), the number of bits you need to represent these uniquely is about 7.8 * 3.3 = ~25.75, or about 26, and in fact, 2^26=~67million, which is pretty prefect! Although in reality we’d want to err on the high side at 27 bits.)

Okay, so back to the question how to right-size Minecraft.

So, let’s say that the worlds are only going to be 6k square, and we’re going to make the topo generation algorithm always create interesting topographies and biomes in each of these worlds, and we want to allow, say, a reasonable number of players, say, 32, play each of those in order to explore it fully for it interesting properties. How big does the random seed need to be? Well, that’s 1e8 players / 32 (close enough to 33 that 1/3rding works well) = ~3.3e6 worlds, and by the above magical algorithm, that’s 1+(6.3*3.3) =21 bits, and just to check: 2^21 = 2e6 * 3.2e1 = 6.4e7 = 65 million, which is just about right!



Understanding and Explaining Math, and My Teaching Philosophy


I think that I’ve done pretty well with Leo in math. Of course, I’m biased, so don’t take my word for it; We recently got back the results of a standardized nation-wide math test that Leo took at the end of last year — that is, at the end of 4th grade — on which he scored …well, without getting into too much detail, let’s just leave it at, pretty darn well, scoring well above his grade level.

Now, granted, being a US Standardized test, the performance expectations are not extremely rigorous. But off the strength of that confirmation that we’re doing something right, we decided to kinda go for a reach goal, and set Leo’s 5th grade personalized math goal is to get 80% correct on the real SATs (possibly including sitting for one at the end of the school year!)

Now, there are a few issues with Leo’s math. One is that although Leo can definitely do a lot of math that’s well beyond his grade level, he’s really bad a explaining himself — what’s sometimes called “showing your work”, or even just explaining it to me (so it’s not just a problem with writing things down in an organized way, although he definitely has that problem as well)! This is a problem, but it’s hard to tell whether this is a math problem; Explanation is in-and-of-itself a huge separate skill and a topic that I’m planning to write about separately.

A related question is whether Leo actually “understands” what he’s doing? That is, even if he can get the right answer, does he “understand” the underlying principles?

Like “explanation”, “understanding” is a huge and complex topic that deserves its own treatment. One way in which explanation and understanding are related is that you pretty much need to understand what you’re doing in order to give a coherent explanation. The opposite is a little more complex: It may be that Leo can’t give good explanations because he doesn’t really understand the math he’s doing, or it could equally well be that he’s not good at giving explanations, which is (as above) in-and-of-itself a complex skill. The fact that he gets the answers right is some evidence to the positive, but the question remains a valid one; he could just be very good at rote procedures.

Now, before going further, there’s another very difficult problem, that is, what does it actually mean to “understand” math? I’m obviously not going to deal with that here; I’m not even competent to deal with that; I’m not sure anyone is. That’s more like a matter for philosophy of math, not my areas of expertise, which are closer to cognitive science.

So, not dealing with either of the hard questions of what understanding or explanation really are, I think I can address the “Does Leo actually understand what he’s doing?” question pretty clearly in practical terms. At the same time, I’m going to explain something about my teaching philosophy, because these are closely connected.

In a previous post I wrote a brief aside about my “educational (or teaching) philosophy”. Here’s what I wrote there: “[O]ne of its pillars [of my teaching philosophy] is this: You only get people’s (esp. children’s!) attention for a couple of minutes at a time, so be sure to do tiny fun things, and build them up over days, weeks, months, and years to reach where you want to go.”

As stated, this is only “one of” the pillars of my teaching philosophy. Actually, a much more important principle is one that I was inspired to by an actor who I happened to hear interviewed on the radio (probably Fresh Air), many years ago. This particular actor’s family moved to France when she was a child. She did not speak any French, and the interviewer (probably Terry Gross) asked if that was hard? In response the actor said something like: “I’ve never thought that I needed to completely understand everything I read the first time through.” (Nb. I’m paraphrasing, of course, as I can’t remember the exact words. This is probably not at all what she said, but it’s the bit that I recall.)

One of the reasons that this idea spoke to me is that I have had exactly the same experience with every math course I’ve ever taken! I floundered the first time through pretty much every advanced math course, but the second or third time I encountered the same topic, I understood more of it, and then even more of it, until I pretty much got it entirely.

From these two thoughts — First, that you shouldn’t expect to understand every concept involved in what you are doing in detail the first few times you encounter them, and Second, that you only get people’s (esp. children’s!) attention for a couple of minutes at a time — comes my entire teaching philosophy: Grab kids attention by working interesting and challenging problems from very early on, and don’t worry too much about whether they understand everything about what’s going on, and repeat a lot. If you can get and keep kids attention as they encounter the same concept 10 then 20 then 30 times in 10 then 20 then 30 different interesting settings, they’ll understand a little more at each level, until they pretty much understand everything there is to understand about it…or at least enough to count as a high school or undergraduate “understanding” of math.

Importantly, this isn’t the same theory as “throw ’em in the deep end and they’ll sink or swim”; it’s closer to scaffolding, but a version of scaffolding where you do interesting problems, no matter how hard they are (or almost no matter, anyway), and work them together, and eventually, after doing 10 or 20 or 30 problems that conceptually overlap one another, they’ll have got it all figured.

The key is to keep it fun, and, frankly, early math just isn’t all that much interesting. So instead we mostly work AoPS AMC 10 and 12 contest problems,  SAT practice problems, and as many math puzzle books as I can get my hands on. (Yes, the ones from Martin Gardner, of course, but there are so many more, and his are good, but actually aren’t actually the best!)

Returning the question of whether Leo actually “understands” — whatever that means — I want to give an an example that came up just this morning, which I think points this out perfectly. We were working this problem from an SAT practice test:

Screen Shot 2019-11-06 at 4.35.41 PM

Which comes from here:

The SATs, or at least the SAT practice tests, are apparently intentionally confusingly written. The extra “a” factor, and using “c” and “d” to represent the vertex, are just extra confusing pointless noise. I was even having trouble figuring this one out, even though, as you’ll see in a second, it’s actually nearly trivial. (There’s another problem in this same test that’s even more confusing; I showed it to a mathematician and even he was confused by it!)

I tried to talk Leo through turning it into vertex form, and a couple of other over-complex approaches. It was simple enough to approximately plot the parabola, and find the zeros, esp. as they give you the factorized form, so you can just read the zeros off!, But the “a” was throwing us off … how does the “a” play into it? If you had the polynomial form, you’d have an “a” in every element of the polynomial…what role would that play?

Leo actually figured this problem out before I did (although, in my defense, not a LOT before I did! 🙂 If you know the zeros (-4 and 2) then the vertex of a parabola is always half way between them. 🤦🏻‍♂️!!! From there it’s easy: Set a=1 to get it out of the way, then half way between -4 and +2 is … actually, we got this wrong at first … forgot zero! … it’s -1 (best to use the mean: (-4+2)=-2/2=-1), and then plug x=-1 into the equation, and, voila: -9. The “a” is just a scaling factor, so the answer is A: -9a.

(Just for fun — if you can call it that — we confirmed the zeros by cross-multiplying the factors into the polynomial form (aka. FOIL) and applying the quadratic formula.)

Leo made one other interesting observation, while we were considering this problem: For some reason we started talking about higher degree polynomials; I don’t recall why. I pointed out that when the degree of the polynomial is odd, X values less than zero go to  decreasing Ys (because odd powers of negative numbers are negative), whereas Xs greater than zero go upward (even powers of negative numbers are positive!), resulting in the famous twisty form of the plots of odd-degree polynomials, and the famous parabola of the even ones.

Pondering this briefly, Leo said, excitedly: “Oh, I can use that to figure out whether infinity is odd or even, by plotting a polynomial of degree infinity, and if it has the left-down shape, then infinity is odd, but if it goes up, then infinity is even!”

I’ll have to think about this, but not too hard. My sense is that there’s some bug in this thinking; a the very least, I’m not sure you can plot a polynomial of degree infinity (infinity isn’t really a number — that’s one of those concepts that Leo’s about half-way to.) But, still, even if his assertion isn’t completely sensible, at least it’s coherent. It’s sort of like learning French by just moving to France — you get a few words and phrases here and there, and you hook French culture to your own understandings, and build on them over time, and eventually, you’re French!

So, does Leo “understand” all this? Well, he realized how to find the vertex (shortly) before I even did, and is coming up with interesting, if slightly outlandish, hypotheses about polynomials of infinite degree. So, okay, maybe he doesn’t get some aspects of this area of math, but heck, I probably don’t either; I learn something new almost every time we work an advanced problem together!

All in all, I’d say we’re both doing okay so far, having fun with math!


The Three Best Science & Math Channels on YouTube; And One Video from each that will Blow Your Mind


, ,

Leo and I do a lot of our learning from YouTube (as does everyone these days, of course!) In other posts I’ve listed some of the channels we subscribe to, and I should update that. But I want to give a shout-out to three terrific science ed channels, and to one specific video on each that just blows my mind about how great scientific and mathematical explanation can be:


VSauce (which has several sub-channels now) is chocked full of terrific scientific explanations, but this one is just head and shoulders above anything that I’ve seen anywhere else:



Although way less broad than Vsauce, the mathematical explanations in 3Blue1Brown are the best I’ve ever seen, anywhere. This one is particular mind-blowingly clear about a particularly mind-blowing part of the core of mathematics:



Much more boring in style than either the above two, and much much more detailed, Dr. Physics A does the clearest detailed physics derivations I’ve ever seen. He works through all the algebra step-by-step in what should be really really boring, but for some reason that I don’t get, it actually really really gripping. (Something about his “Queen’s English” accent adds to the fun; like you’re getting your physics from James Bond 🙂 All of his videos are great, but this little 5-parter that goes from zero to E=MC^2 is just so crystal-clear I can watch is again and again and just appreciate more and more how great explanation can be:


Honorable mention to PBS Space Time. Unfortunately, they’re a little long for their depth and detail. Even though it’s just pen-and-paper, compared to Space Time’s fancy CGI, Dr. Physics A wins hands down on coming out the other end understanding what’s really going on. (The Space Time guy also has a sort of cool accent; I think it’s also English (as in British), but not as “Queen’s” as Dr. Physics A, so not as much fun.)


PiWords (Magic Squares in Pi)


, ,

A “PiWord” is a sort of crossword puzzle/magic square where you can find the across and down digits in the digits of Pi. Because Pi is transcendental, if you go out long enough you’ll be able to find any number you like, so you can obviously create a PiWord that is as large as you like and containing any numbers you like.

But if you constrain the number of digits of Pi you’re allowed to explore, it get’s a LOT harder. For example, here’s one that is entirely within the first 1000 digits of Pi:

Screen Shot 2019-10-11 at 9.34.10 AM

The numbers along the right and left are the locations in Pi where each of these across or down 4-digit sequence is found (where the leading 3 is at location 1).

There are many non-trivial (i.e., not repeating the same sequence) 4×4 PiWords within the first 1000 digits.

If you go down to a 3×3 PiWord you can find 2 within the first 50 digits of Pi.

Here’s one:

Screen Shot 2019-10-11 at 9.43.00 AM

I’ll leave it as a challenge to the reader to find the other! (Hint: It uses some, but not all of the same 3-digit sequences as above.)

(Note: Of course, every PiWord solution has another using the same numbers just flipped across the main diagonal. That’s obviously cheating, and doesn’t count as a separate solution!)

Another interesting challenge is to write the program needed to find these. Finding 3×3 PiWords in the first handful of digits, like the challenge just above, can be (barely) done by inspection, but anything larger pretty much requires a computer! (I, of course, wrote a version to get the 4×4 above. I would share it with you…but where’s the fun in that!? 🙂 )


I Like Math (a poem)



(Leo had to write an essay introducing himself to his math teacher. We were reading “The Friendly Book”, by Margaret Wise Brown, to Ada, and got the idea to do a math poem in that style. Leo mostly wrote this himself, although I made some suggestions about rhyming and meter.)

I Like Math
   By Leo Armel
       (In the style of Margaret Wise Brown)

I like math

I like numbers
Big numbers
Little numbers
Rational and irrational numbers
Negative and positive numbers
Simple and complex numbers
Integers and reals
I like numbers

I like Pi
Root pi
e to the i pi
Pi r squared
Blueberry pie
I like pi

I like logs
Log base 2
Log base 3
Log base 10
Log base e
I like logs

I like shapes
Circles, squares and right triangles
1D 2D 3D shapes
Regular and irregular shapes
Fractals and monster shapes
Concave and convex shapes
I like shapes

I like graphs
Line graphs
Bar charts
Pie charts
Error bars
I like graphs

I like operators
Plus minus times divide
Roots and powers
Integrals and derivatives
Factorials and combinations
I like operators

I like functions
Linear functions
Exponential functions
Quadratic functions
Trig functions
I like functions

I like angles
Acute angles
Right angles
Obtuse angles
Straight angles
Reflex angles
I like angles

I like calculators
Programmable calculators
Graphing calculators
Wolfram Alpha and online calculators
Human brains
I like calculators

I like math


Physics Camp


, ,

After the moderately positive experience of Chem Camp, we decided to do a somewhat more abbreviated home Physics Camp, with Leo’s same friend, Connor in the two days before school started this week.

This didn’t go nearly as well as Chem Camp, mostly, I think, because Leo and Connor were significantly more distracted by one another, and so much less on task, mostly spinning off into MineCraft micro-conversations. (For some reason that I just don’t get at all, Minecrafters, and esp. Leo, are fascinated by the version history of MineCraft — what features/bugs got added/fixed in each version. Leo watches videos about this all the time, and for some reason loves bringing up old versions and re-living the bugs. Speaking as someone who spends a very large amount of my time squashing bugs in complex programs, intentionally reliving old bugs is about the farthest thing from fun that I can think of, short of self-inflicted physical pain! This said, Leo has learned a great deal about common causes of bugs from this fascination, esp. regarding floating point arithmetic problems.)

So, Physics camp included these topics:

  • Gyroscopic phenomena (via this terrific gyroscope kit)
  • Sound waves (via an electronic keyboard and oscilloscopic iPad app)
  • Minimal bubble surfaces (using shapes created with zoomtool; pic below)
  • Energy transfer (via Rube Goldberg Machines)
  • Dynamics (via normal and chaotic [double] pendula; pic below)
  • Optics (via lasers and lenses)
  • Work and Mechanical Advantage (via complex pulley arrangements)
  • Magnetic fields (via strong microwave oven magnets; pic below)
  • Electricity and magnetism (moving magnets creating current and v.v.)

I regret that I didn’t get to much formal computations, and also that I didn’t take as many pictures as I should have, but here are a few:

Building, and then running, the chaotic pendulum:

A great “hypercube” minimal bubble in a cube:


Best invention of the week was microwave magnets on a PVC pipe separated by electrical tape:


(Trying to demonstrate the Left Hand Rule for electromagnetism on our high power magnet apparatus.)

The tape and pipe keep the magnets from snapping together and breaking, or pinching fingers!


PyCraft Alpha 1.4.0_01


, , , ,

I think python camp ended up being pretty educational, even if we didn’t meet all of our goals. The curses version of Leo’s MineCraft-In-Python (aka. PythonCraft) actually ended up pretty well, and we did some actual pretty interesting algorithm coding, and even a little computational complexity. Unfortunately, we wasted pretty much a whole day trying to translate the game into pygame, which would have provided way better graphics. But that ended up being beyond Leo’s capabilities, and although I could have done it for him, that would have defeated the purpose, so we just fell back to the curses version.

Previous version (Alpha 1.3) had the basic world and player, and some pretty good terrain generation, and at some point we added survival mode as well. 1.4 introduced water and npcs (mobs, in Minecraft parlance). Each of these actually involved interesting new algorithm design. In the case of water, the blocks had to “flow”, so that would fill space “gravitationally”. How to do this is actually non-trivial, but after lots of experimenting we more-or-less got it to work. Here’s an image of how water ends up  sort of filling a valley. The waters are = signs, and the player is the *. All the water blocks in the valley were originally dropped in the same column, but moved to fill the valley. Notice that there’s room for improvement in the algorithm as it made a sort of pyramid:

Screen Shot 2019-08-16 at 2.06.18 PM

Mobs were also very interesting. Leo invented a nice mob placement algorithm so that the would end up mostly in caves (although sometimes on the surface as well), and then we did a nice mob movement algorithm that would make them move toward the player. Of course, there were failures along the way to this as well. Some shots of the results of various “approximations” (aka. major bugs! :-):



But the thing did work out in the end (here the player is being chased through the air by 2 zombies and a creeper — yeah, they can fly … minor bug!):

Screen Shot 2019-08-18 at 3.56.22 PM

As before, all the code is in the github repo.

2019-10-11: After much thought, we improved the water flow algorithm in a rather simple way, which ended up greatly improving it. Now water not only tries to flow downward, which is what was causing the pyramids, but also randomly left- or rightward, so that it’s always in a sort of random walk, eventually finding its lowest possible level. As you can see, this has greatly improved things; the water now seeks the lowest space and spreads out, filling space at the bottom, just as normal water does:

Screen Shot 2019-10-11 at 10.06.30 PM

This still lacks a bit of reality, in that it won’t hydraulically flow upward through a hole, as there’s no actual water pressure. But at least it doesn’t create weird waster pyramids!


Pycraft Alpha 1.3.0


, , , , , , ,

We ran out of camps this summer, so I decided to keep Leo home this week and do intensive programming “camp” (sort of like Chem Camp, but just with Leo.)  Also, I’m finally making good on my theory that kids should only be allowed to play computer games that they program themselves.

The rest of this post (with the exception of the * footnote and related content), is Leo’s own words:

Pycraft is a project I (Leo) have been working on with daddy. We started this about 2 weeks ago and it has gone very well! Here is a link to the github repo(*) with the code. Feel free to post issues, it would be useful! Known issues: If you click while moving it crashes, and you can erase the text at the top.

What I learned so far: Python programming, git-based version control(*), curses based graphics(*).

Coolest hack: Pythagorean theorem distance calculations(*)

Next steps: Survival, and eventually going to more sophisticated graphics(*), probably via pygame. 

Here’s a screenshot:

Screen Shot 2019-08-13 at 4.36.32 PM

(* Indicates were I (daddy) had to provide the correct name for something, so this is my (daddy’s) words, not Leo’s)