With the baseball season nearly upon us, I have taken to tinkering with my baseball simulation ideas once again. This time, my vision is a little more clear, at least with respect to what I want to do with the resulting data.

For those who have no idea what I am talking about, for years, I have been fascinated with the idea of writing a baseball simulation. Many of these simulations already exist, but I find that building it myself helps me learn. Also, my goals are somewhat different from the goals of the existing simulations:

  1. My simulations are not interactive. That is, you don’t play the manager. There is a bootstrapped starting point, and the simulations run based on that starting point.
  2. The output of my simulations is data.
  3. Part of what I am doing is writing tools to make use of the data.
  4. Ideally, I’d run 100 years of well-simulated baseball, and have a century of data to play with.

That had been the point of my tinkering now and then over the years. With a century of data, all fictional, it would be interest, I thought, to see who held the all-time home run record, who had the most stolen bases, how many perfect games were played, etc.

More recently, I’ve had another idea that goes beyond this. I had so much fun writing my last published story, “Gemma Barrows Comes to Cooperstown” that it occurred to me that with the data from 100 years of simulated baseball, I could begin to write a series of fiction (alternate universe?) baseball stories about the various seasons, games, standout players, etc. I wouldn’t have to make up the game situations, since my simulation data would provide all of that.

I have also turned to a more tool-based model, and have thus started calling my simulation a “baseball OS” since it is entirely based on command-line tools. I’ve created a GitHub repo for this which I am making public for anyone who wants to peek at what I am working on. Right now, there’s nothing more than documentation, because I haven’t yet rewritten the stuff from last year to fit this tool-based model. I am working more on the framework, the goals I want to achieve, and the milestone features with each release.

This may seem silly, esoteric, or a waste of time, but I can’t begin to express the delight I have in working on this effort in little chunks of time here and there. It relaxes me, teaches me new things, and keep my coding chops as honed as I can manage. I imagine I derive the same pleasure from this effort as someone who works with wood making furniture, or someone who relaxes by painting landscapes.

The time I’ve been spending on this might also explain why I haven’t been writing as much here, although that isn’t the only reason. The day job has been busy as well.