--- /dev/null
+rocks←⟨
+ ["...####.."]
+
+ ["....#...."
+ "...###..."
+ "....#...."]
+
+ [".....#..."
+ ".....#..."
+ "...###..."]
+
+ ["...#....."
+ "...#....."
+ "...#....."
+ "...#....."]
+
+ ["...##...."
+ "...##...."]
+⟩
+rocks ".#"⊸⊐¨↩ # Convert to boolean array
+
+Prep←(⊏⟜⟨«˘,»˘⟩)∘("<>"⊸⊐)
+
+Extend←⟨1,0,0,0,0,0,0,0,1⟩⊸∾
+
+Space←{+´2=+˝˘𝕩}
+
+Main←{𝕊 jets:
+ arena←⟨1,9⟩⥊1
+ {
+ falling←((≠rocks)|𝕩)⊑rocks
+ arena Extend⍟((3+≠falling)-(Space arena)) ↩
+ ⟨fallen, fallenpos⟩ ← { 𝕊 ⟨falling,fallpos⟩:
+ fallpos ↩ 1+fallpos
+ jet←((≠jets)|fallpos)⊑jets
+ shifted ← Jet falling
+ obstructed ← ∨´⥊shifted∧(≠shifted)↑fallpos↓arena
+ falling ↩ obstructed ⊑ ⟨shifted,falling⟩
+ •Show ⟨fallpos,falling∨(≠shifted)↑fallpos↓arena⟩
+ ⟨falling,fallpos⟩
+ } •_while_ { 𝕊 ⟨falling,fallpos⟩:
+ ¬∨´⥊falling∧(≠falling)↑(1+fallpos)↓arena
+ } ⟨falling,¯1⟩
+ arena↩ {𝕩∨fallen}⌾{((≠fallen)⊸↑)∘(fallenpos⊸↓)} arena
+ •Show arena⊏".#"
+ }¨↕10
+ @
+}
+
+•Show Main Prep ⊑•file.Lines ⊑•args