Pages

Saturday, February 1, 2025

Duck and Cover

[I considered "Don't Look Up," but I have a soft spot for Red Scare propaganda.]

This week there was news of an asteroid with a 1-in-82 chance of hitting the Earth in 2032. Most reports seemed to spin this as a reassuringly low chance, but as someone well-versed in low probabilities, I found it to be uncomfortably high, so I wanted to dig into it a bit. NASA's Small Body Database has an entry for this asteroid, which gives its orbital parameters and a nice interactive plot of its path through space. In order to do some calculations with this info though, I found a tool developed by MIT called poliastro, which can connect to the database and read the orbit definitions.

As a first pass, I tried duplicating the type of plot NASA included on its page, showing the orbit of the asteroid compared with a few of the planets around the time of the possible collision:

This shows the orbits of Earth in blue, Venus in cyan, Mars in red, and the asteroid in magenta. The planets' orbits are all fairly circular, while the asteroid's is sharply elliptical, and crosses the paths of the planets. The predicted flyby is around December 2032, and if you watch the animation you can see the asteroid skirts behind the Earth with a fair gap.

All predictions include errors though, so what happens if this orbit isn't quite the right one? Poliastro offers an object called a maneuver that can perturb a given orbit. Starting with the orbit above, I applied a random change in velocity with magnitude up to 10% of the initial value. Then I measured the distance between the Earth and the asteroid in time for each variation in the orbit:

The x-axis is the Modified Julian Date, a measure of time often used in astronomy. The black line is the predicted orbit, which only gets down to around 200 million km separation. For reference, that's about 1,000 times the distance from Earth to the Moon. However, some of those variations get a lot closer. To see how many of them are getting close, we can look at a histogram comparing the closest approach for each of the variants to the original:

Values below zero indicate the variant gets closer than the base prediction, and the red line marks the distance that would result in a collision with the Earth. Several of those variants are getting awfully close, so much like my pressure cooker post, I'm not sure I feel better at the end of this!

Sunday, January 26, 2025

Water Wedge

The streets around our house have many potholes, which fill up with ice:

Water expands when it freezes, which means when a hole fills with water that freezes, the ice can potentially make the hole bigger. To do this, the ice puts pressure on the asphalt, and vice versa. Adding pressure can make it more difficult for ice to freeze, so I looked up some info on asphalt strength. This paper gave a plot comparing the bond strength for different aging times:

Figure 8

These are all around 2-4 MPa. We can look at the phase diagram for water to see how this would affect freezing:

Wikipedia

This is well within the range where the freezing point is still around 0°C, so we don't need to worry about the pressure we're applying. Water expands by about 9% when it freezes, so we can imagine water filling a crack, then pushing out in all directions:

That's the general idea I had in mind, but getting into the details, the steps I used are

  1. Begin with a flat road. Put a dent in the center with depth y0 (*parameter).
  2. Find all points below the road, and use them to define a polygon.
  3. Find the centroid (center of mass) of the polygon and push all points out by 9%.
  4. Push the polygon down according to its weight (*parameter).
  5. Add points anywhere the separation has passed a threshold.
  6. Adjust points along line for equal spacing.
  7. Repeat from 2.

I added steps 5 and 6 since otherwise the crack just scaled up from the initial dent. We can look at the type of crack these steps give as we cycle through freezes/melts:

This seems a little extreme, but we can take a look at how this changes with the two parameters I marked above. The two qualities I was mainly interested in were the width and depth of the crack. We can see how those change in time with different y0 and weight values:

It makes sense these curves look exponential, since the increase depends on the current size. What really surprised me though was how well-separated these two qualities are according to the input weight and y0. These plots suggest that the width is almost wholly determined by the weight, and the depth by the initial depth. For the depth, this can easily be tied to the exponential behavior – Starting deeper increases the rate the depth increases. A little less obvious is the weight, but if we look at the initial diagram of the setup, the wedge shape of the ice means pushing down also pushes out. A quality of exponential systems is that they can very quickly get away from their starting point if left unchecked – A reminder to keep those roads smooth!

Sunday, January 19, 2025

Beet the Traffic

We watch the local news every morning, and this week a story caught my interest: Alternatives to using road salt to avoid harmful risks. The key point of the story is that runoff from salting the roads can damage the surrounding environment, but adding beet juice to the solution can make it stick to the roads better. Reading up on the idea, I've found it's still debated whether this idea is really better for the environment, but the bit I was curious about is the ability to stay on the road.

Looking into ways I could model this, I found a paper discussing how droplets spread over time based on their surface tension. Their model was a bit more involved than I wanted to get, so I made some simplifications: The droplet takes the form of an ellipsoid with constant volume and circular base. This constrains the relationship between the height and the radius. The paper defines a value they call h* where gravity and surface tension balance. After my simplifications, it takes the form

where ρ is the density of the fluid, g is the acceleration due to gravity, and γ is the surface tension. For a given fluid, we can look up the surface tension and density. I decided to try a salt-water solution (γ, ρ), a sugar-water solution (γ, ρ), and molasses (γ, ρ).

The paper gives a t^1/5 form for the height of the drop, so we can start each of these fluids as a hemisphere and see how they spread as they approach their respective h* values:

This shows the sugar and salt spreading at roughly the same rate, contrary to the idea given in the report, so I expect my model is not capturing all their qualities. What I find really interesting though is that the thicker molasses actually spreads faster, because it's more dense that the other two, so gravity exerts a stronger force. Naturally, this brought to mind a bit of history from my home state, when a flood of molasses from a ruptured tank cut a swath of destruction through Boston!

Sunday, January 5, 2025

Make Like a Tree and Get Out of Here

Swarthmore's Scott Arboretum traditionally gives incoming students a plant to care for in their dorms. Shockingly, the Hawaiian Schefflera I received in 2007 is still going 17 years later! Over the years as I've moved from place to place and kept the plant in different environments, I've been impressed by its ability to track the sunlight, frequently growing lopsided as it reaches toward the nearest window until I think to turn it. This has resulted in some twisting, gnarled branches:

If you've been reading this blog, you can probably guess where this is going – I was curious if I could make a simulation of my plant's heliotropic tendencies. I decided to model the plant as a collection of connected branch segments, each a fixed length and pointing at an angle relative to the vertical. At each step, we iterate over all the segments and pick an action:

  • If the segment has no children, i.e. it's at the tip of a branch, we add a new segment on the end with a probability p_grow/size, where size is the number of existing segments.
  • If the segment does have children, we add a new one with probability p_sprout/size.
  • If neither of those occur, we adjust the angle of the branch to point closer to the sun's current position. The adjustment is proportional to how far off the angle is, how many branches are on the end of this one, and a constant stiffness for the plant.

I tried a bunch of values for the different parameters until I landed on a range that gave plants looking reasonably similar to the real thing (click to enlarge):

The numbers along the top give the stiffnesses, and the ones on the left give the sprout probability. The sun moves back and forth sinusoidally, which you can see in the snaking of the plants. I wasn't able to get my digital plants to spread as much as the analog one, possibly because I'm not accounting for the plant casting shadow on itself, but I'm still pleased with the results – The top center one seems particularly good. If you'd like to try for yourself, the code is here.