summary refs log tree commit diff
path: root/www/photo.causal.agency
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--www/photo.causal.agency/2024-08-29/000054970002.txt3
-rw-r--r--www/photo.causal.agency/2024-08-29/000054970004.txt5
-rw-r--r--www/photo.causal.agency/2024-08-29/000054970005.txt3
-rw-r--r--www/photo.causal.agency/2024-08-29/000054970006.txt2
-rw-r--r--www/photo.causal.agency/2024-08-29/body1
-rw-r--r--www/photo.causal.agency/2024-08-29/film1
-rw-r--r--www/photo.causal.agency/2024-08-29/lens1
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970017.txt11
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970018.txt7
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970019.txt6
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970021.txt11
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970022.txt3
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970023.txt3
-rw-r--r--www/photo.causal.agency/2024-09-02/000054970029.txt6
-rw-r--r--www/photo.causal.agency/2024-09-02/body1
-rw-r--r--www/photo.causal.agency/2024-09-02/film1
-rw-r--r--www/photo.causal.agency/2024-09-02/lens1
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000003.txt6
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000009.txt5
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000010.txt3
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000014.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000017.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000018.txt5
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000023.txt5
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000024.txt5
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000025.txt5
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000026.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000027.txt3
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000032.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000033.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000038.txt4
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000042.txt3
-rw-r--r--www/photo.causal.agency/2024-09-05/06124000044.txt8
-rw-r--r--www/photo.causal.agency/2024-09-05/body1
-rw-r--r--www/photo.causal.agency/2024-09-05/film1
-rw-r--r--www/photo.causal.agency/2024-09-05/lens1
-rw-r--r--www/photo.causal.agency/2024-09-07/body1
-rw-r--r--www/photo.causal.agency/2024-09-07/film1
-rw-r--r--www/photo.causal.agency/2024-09-07/lens1
-rw-r--r--www/photo.causal.agency/2024-09-12/body1
-rw-r--r--www/photo.causal.agency/2024-09-12/film1
-rw-r--r--www/photo.causal.agency/2024-09-12/lens1
-rw-r--r--www/photo.causal.agency/2024-09-14/body1
-rw-r--r--www/photo.causal.agency/2024-09-14/film1
-rw-r--r--www/photo.causal.agency/2024-09-14/lens1
-rw-r--r--www/photo.causal.agency/2024-09-15/body1
-rw-r--r--www/photo.causal.agency/2024-09-15/film1
-rw-r--r--www/photo.causal.agency/2024-09-15/lens1
-rw-r--r--www/photo.causal.agency/2024-09-22/body1
-rw-r--r--www/photo.causal.agency/2024-09-22/film1
-rw-r--r--www/photo.causal.agency/2024-09-22/lens1
-rw-r--r--www/photo.causal.agency/2024-09-28/body1
-rw-r--r--www/photo.causal.agency/2024-09-28/film1
-rw-r--r--www/photo.causal.agency/2024-09-28/lens1
-rw-r--r--www/photo.causal.agency/2024-09-29/body1
-rw-r--r--www/photo.causal.agency/2024-09-29/film1
-rw-r--r--www/photo.causal.agency/2024-09-29/lens1
-rw-r--r--www/photo.causal.agency/2024-10-01/body1
-rw-r--r--www/photo.causal.agency/2024-10-01/film1
-rw-r--r--www/photo.causal.agency/2024-10-01/lens1
-rw-r--r--www/photo.causal.agency/2024-10-05/body1
-rw-r--r--www/photo.causal.agency/2024-10-05/film1
-rw-r--r--www/photo.causal.agency/2024-10-05/lens1
-rw-r--r--www/photo.causal.agency/2024-10-06/body1
-rw-r--r--www/photo.causal.agency/2024-10-06/film1
-rw-r--r--www/photo.causal.agency/2024-10-06/lens1
-rw-r--r--www/photo.causal.agency/2024-10-12/body1
-rw-r--r--www/photo.causal.agency/2024-10-12/film1
-rw-r--r--www/photo.causal.agency/2024-10-12/lens1
-rw-r--r--www/photo.causal.agency/2024-10-17/body1
-rw-r--r--www/photo.causal.agency/2024-10-17/film1
-rw-r--r--www/photo.causal.agency/2024-10-17/lens1
-rw-r--r--www/photo.causal.agency/2024-10-20/body1
-rw-r--r--www/photo.causal.agency/2024-10-20/film1
-rw-r--r--www/photo.causal.agency/2024-10-20/lens1
-rw-r--r--www/photo.causal.agency/2024-10-23/body1
-rw-r--r--www/photo.causal.agency/2024-10-23/film1
-rw-r--r--www/photo.causal.agency/2024-10-23/lens1
-rw-r--r--www/photo.causal.agency/generate.sh19
-rw-r--r--www/photo.causal.agency/trips.html84
80 files changed, 264 insertions, 22 deletions
diff --git a/www/photo.causal.agency/2024-08-29/000054970002.txt b/www/photo.causal.agency/2024-08-29/000054970002.txt
new file mode 100644
index 00000000..e58bb3c3
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/000054970002.txt
@@ -0,0 +1,3 @@
+reflection of trees and sky
+in water with ripples
+at early evening.
diff --git a/www/photo.causal.agency/2024-08-29/000054970004.txt b/www/photo.causal.agency/2024-08-29/000054970004.txt
new file mode 100644
index 00000000..b8ca6fc6
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/000054970004.txt
@@ -0,0 +1,5 @@
+rough concrete blocks
+stacked 3 by 3 except
+the top right one is missing.
+they're heavily weathered
+and have trees overhanging them.
diff --git a/www/photo.causal.agency/2024-08-29/000054970005.txt b/www/photo.causal.agency/2024-08-29/000054970005.txt
new file mode 100644
index 00000000..89cfbe7f
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/000054970005.txt
@@ -0,0 +1,3 @@
+Ayla in an orange sweater
+pulling her fingers through her hair
+and making a squinting face.
diff --git a/www/photo.causal.agency/2024-08-29/000054970006.txt b/www/photo.causal.agency/2024-08-29/000054970006.txt
new file mode 100644
index 00000000..dcf4b50e
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/000054970006.txt
@@ -0,0 +1,2 @@
+Ayla in an orange sweater
+looking to the side and smiling.
diff --git a/www/photo.causal.agency/2024-08-29/body b/www/photo.causal.agency/2024-08-29/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-08-29/film b/www/photo.causal.agency/2024-08-29/film
new file mode 100644
index 00000000..dd589471
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/film
@@ -0,0 +1 @@
+Harman Phoenix 200
diff --git a/www/photo.causal.agency/2024-08-29/lens b/www/photo.causal.agency/2024-08-29/lens
new file mode 100644
index 00000000..13f1fc49
--- /dev/null
+++ b/www/photo.causal.agency/2024-08-29/lens
@@ -0,0 +1 @@
+Yashica DSB 50mm ƒ/1.9
diff --git a/www/photo.causal.agency/2024-09-02/000054970017.txt b/www/photo.causal.agency/2024-09-02/000054970017.txt
new file mode 100644
index 00000000..a90825a9
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970017.txt
@@ -0,0 +1,11 @@
+a block of windows in a school building,
+viewed from a slight angle.
+the wall of the building is beige brick
+and the block of windows
+is bordered by grey stone.
+there are two rows of windows,
+and below each row are panels that appear brown,
+though they're orange in person.
+the top row of windows
+is reflecting some blue sky and clouds,
+while the bottom row is reflecting only cloud.
diff --git a/www/photo.causal.agency/2024-09-02/000054970018.txt b/www/photo.causal.agency/2024-09-02/000054970018.txt
new file mode 100644
index 00000000..db65ac6c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970018.txt
@@ -0,0 +1,7 @@
+a row of three benches on the front lawn of a school building.
+each bench is separated by bushes and trees.
+they're made up of planks of wood painted blue
+bolted to concrete supports.
+the school building behind them is beige brick
+and there are window AC units installed
+in each window of the second floor.
diff --git a/www/photo.causal.agency/2024-09-02/000054970019.txt b/www/photo.causal.agency/2024-09-02/000054970019.txt
new file mode 100644
index 00000000..18b9c733
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970019.txt
@@ -0,0 +1,6 @@
+numerous stacks of wooden picnic tables
+on a lawn of grass in front of some trees.
+most of the stacks are piled three high,
+some four.
+the light coming through the branches and leaves
+of the trees in the background is glowing gold.
diff --git a/www/photo.causal.agency/2024-09-02/000054970021.txt b/www/photo.causal.agency/2024-09-02/000054970021.txt
new file mode 100644
index 00000000..2aac2c6f
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970021.txt
@@ -0,0 +1,11 @@
+fancy windows on the side of a school building.
+it's a repeating pattern of three windows
+in the middle of a house-shaped design
+of yellow panels on the second floor.
+the middle windows are higher than the other two.
+the triangle at the top of the window design
+is followed by the profile of the roof.
+below that, separated by a row of even short windows,
+are red panels.
+the upper windows are reflecting blue sky and clouds,
+while the lower red panels are reflecting trees and clouds.
diff --git a/www/photo.causal.agency/2024-09-02/000054970022.txt b/www/photo.causal.agency/2024-09-02/000054970022.txt
new file mode 100644
index 00000000..df959a2c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970022.txt
@@ -0,0 +1,3 @@
+a light brown or beige brick school building
+with its rows of windows.
+the trim around the windows is sort of red-brown.
diff --git a/www/photo.causal.agency/2024-09-02/000054970023.txt b/www/photo.causal.agency/2024-09-02/000054970023.txt
new file mode 100644
index 00000000..976a4054
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970023.txt
@@ -0,0 +1,3 @@
+a haphazard pile of broken and discarded park benches.
+they're nice ones made of wooden slats and black metal supports.
+some are nice warm brown and others are more grey.
diff --git a/www/photo.causal.agency/2024-09-02/000054970029.txt b/www/photo.causal.agency/2024-09-02/000054970029.txt
new file mode 100644
index 00000000..53907b76
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/000054970029.txt
@@ -0,0 +1,6 @@
+the wall of some kind of concrete structure
+surrounding a big white metal tank.
+I think the wall is actually metal,
+but the outline of the structure is concrete.
+it's got a lot of interesting marks and texture on it.
+it's very hard to describe.
diff --git a/www/photo.causal.agency/2024-09-02/body b/www/photo.causal.agency/2024-09-02/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-09-02/film b/www/photo.causal.agency/2024-09-02/film
new file mode 100644
index 00000000..dd589471
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/film
@@ -0,0 +1 @@
+Harman Phoenix 200
diff --git a/www/photo.causal.agency/2024-09-02/lens b/www/photo.causal.agency/2024-09-02/lens
new file mode 100644
index 00000000..13f1fc49
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-02/lens
@@ -0,0 +1 @@
+Yashica DSB 50mm ƒ/1.9
diff --git a/www/photo.causal.agency/2024-09-05/06124000003.txt b/www/photo.causal.agency/2024-09-05/06124000003.txt
new file mode 100644
index 00000000..7b3b59e9
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000003.txt
@@ -0,0 +1,6 @@
+looking up at the corner of a grey office building
+of at least 18 floors that we can see,
+on a clear blue sky.
+the sun is on the left,
+illuminating that side of the building brightly
+and leaving the other side in relative shadow.
diff --git a/www/photo.causal.agency/2024-09-05/06124000009.txt b/www/photo.causal.agency/2024-09-05/06124000009.txt
new file mode 100644
index 00000000..acee212d
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000009.txt
@@ -0,0 +1,5 @@
+a huge dark brown brick building
+that is part of a hospital complex.
+it is in the sun,
+but the smaller building behind the camera
+is casting a big shadow in the middle.
diff --git a/www/photo.causal.agency/2024-09-05/06124000010.txt b/www/photo.causal.agency/2024-09-05/06124000010.txt
new file mode 100644
index 00000000..d280e6b5
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000010.txt
@@ -0,0 +1,3 @@
+some really tall, thin trees
+with branches only really high up.
+their dark green leaves are against a bright sky.
diff --git a/www/photo.causal.agency/2024-09-05/06124000014.txt b/www/photo.causal.agency/2024-09-05/06124000014.txt
new file mode 100644
index 00000000..b45b6c58
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000014.txt
@@ -0,0 +1,4 @@
+nine small square windows in a grid
+on a brown brick wall.
+a conduit runs under them
+with a light on either side.
diff --git a/www/photo.causal.agency/2024-09-05/06124000017.txt b/www/photo.causal.agency/2024-09-05/06124000017.txt
new file mode 100644
index 00000000..8b4d2ae5
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000017.txt
@@ -0,0 +1,4 @@
+a closeup of some old walkup stairs.
+the metal frame of the staircase is rusted
+and the wooden steps are decaying.
+they were once painted but almost all of it has come off.
diff --git a/www/photo.causal.agency/2024-09-05/06124000018.txt b/www/photo.causal.agency/2024-09-05/06124000018.txt
new file mode 100644
index 00000000..0a184588
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000018.txt
@@ -0,0 +1,5 @@
+a covered driveway under a building.
+the near wall is in shadow
+but the sun is playing nicely on the far part,
+out from the covered portion.
+beyond is a tree and a wooden fence.
diff --git a/www/photo.causal.agency/2024-09-05/06124000023.txt b/www/photo.causal.agency/2024-09-05/06124000023.txt
new file mode 100644
index 00000000..655ad84e
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000023.txt
@@ -0,0 +1,5 @@
+a brick wall that has a hole in it,
+which is covered by wooden planks,
+except bricks are missing from below it,
+and generally don't seem to be holding together.
+all of that behind a chain link fence right in front of it.
diff --git a/www/photo.causal.agency/2024-09-05/06124000024.txt b/www/photo.causal.agency/2024-09-05/06124000024.txt
new file mode 100644
index 00000000..65ff67be
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000024.txt
@@ -0,0 +1,5 @@
+a grey utility door on the back of a building
+below ground level,
+surrounded by vegetation on all sides,
+and a little white wooden fence
+to the left.
diff --git a/www/photo.causal.agency/2024-09-05/06124000025.txt b/www/photo.causal.agency/2024-09-05/06124000025.txt
new file mode 100644
index 00000000..66cb1aaa
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000025.txt
@@ -0,0 +1,5 @@
+a metal box affixed to a light brick wall
+with the number 1786 in black raised lettering on it.
+the surface of the metal is rusting a light orange.
+just to the right of the box,
+a bundle of black wires climbs straight up the wall.
diff --git a/www/photo.causal.agency/2024-09-05/06124000026.txt b/www/photo.causal.agency/2024-09-05/06124000026.txt
new file mode 100644
index 00000000..765411fe
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000026.txt
@@ -0,0 +1,4 @@
+what may have been a storefront
+with the address 1107.
+it's a door set into the building
+behind a locked metal grate.
diff --git a/www/photo.causal.agency/2024-09-05/06124000027.txt b/www/photo.causal.agency/2024-09-05/06124000027.txt
new file mode 100644
index 00000000..1695ade9
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000027.txt
@@ -0,0 +1,3 @@
+a metal wire sphere
+suspended by two crossing metal bars
+below some trees.
diff --git a/www/photo.causal.agency/2024-09-05/06124000032.txt b/www/photo.causal.agency/2024-09-05/06124000032.txt
new file mode 100644
index 00000000..fb83f216
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000032.txt
@@ -0,0 +1,4 @@
+looking up at a concrete building in the sun.
+it's got a detailed pattern of depth
+around the windows.
+the sky is blue.
diff --git a/www/photo.causal.agency/2024-09-05/06124000033.txt b/www/photo.causal.agency/2024-09-05/06124000033.txt
new file mode 100644
index 00000000..fb83f216
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000033.txt
@@ -0,0 +1,4 @@
+looking up at a concrete building in the sun.
+it's got a detailed pattern of depth
+around the windows.
+the sky is blue.
diff --git a/www/photo.causal.agency/2024-09-05/06124000038.txt b/www/photo.causal.agency/2024-09-05/06124000038.txt
new file mode 100644
index 00000000..30c9eb53
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000038.txt
@@ -0,0 +1,4 @@
+a selfie in some dirty reflective surface I found on the street.
+I’m holding up an analog camera to my face
+and wearing a light coloured tshirt and green little shorts.
+there’s a blue car behind me.
diff --git a/www/photo.causal.agency/2024-09-05/06124000042.txt b/www/photo.causal.agency/2024-09-05/06124000042.txt
new file mode 100644
index 00000000..535d76b0
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000042.txt
@@ -0,0 +1,3 @@
+the side of an old brick factory building
+with a fire escape going up to one window.
+the building is in shadow and the sky is white.
diff --git a/www/photo.causal.agency/2024-09-05/06124000044.txt b/www/photo.causal.agency/2024-09-05/06124000044.txt
new file mode 100644
index 00000000..67ac2df5
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/06124000044.txt
@@ -0,0 +1,8 @@
+the back of something like a building over a garage,
+with a high short window
+and a door with some steps leading down.
+the building is mostly in shadow
+except an area on the left side of the window,
+where the sun must be reflecting off something,
+given the orientation of this particular building
+and the time of day.
diff --git a/www/photo.causal.agency/2024-09-05/body b/www/photo.causal.agency/2024-09-05/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-09-05/film b/www/photo.causal.agency/2024-09-05/film
new file mode 100644
index 00000000..7c8bf080
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/film
@@ -0,0 +1 @@
+Shanghai Color 400
diff --git a/www/photo.causal.agency/2024-09-05/lens b/www/photo.causal.agency/2024-09-05/lens
new file mode 100644
index 00000000..61e7cfd8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-05/lens
@@ -0,0 +1 @@
+Yashica ML 28–85mm ƒ/3.5-4.5
diff --git a/www/photo.causal.agency/2024-09-07/body b/www/photo.causal.agency/2024-09-07/body
new file mode 100644
index 00000000..1828b2a2
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-07/body
@@ -0,0 +1 @@
+Zenit-122
diff --git a/www/photo.causal.agency/2024-09-07/film b/www/photo.causal.agency/2024-09-07/film
new file mode 100644
index 00000000..bf3453cb
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-07/film
@@ -0,0 +1 @@
+Ilford HP5+ 400
diff --git a/www/photo.causal.agency/2024-09-07/lens b/www/photo.causal.agency/2024-09-07/lens
new file mode 100644
index 00000000..dcd0812c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-07/lens
@@ -0,0 +1 @@
+Helios-44M-5 58mm ƒ/2
diff --git a/www/photo.causal.agency/2024-09-12/body b/www/photo.causal.agency/2024-09-12/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-12/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-09-12/film b/www/photo.causal.agency/2024-09-12/film
new file mode 100644
index 00000000..7c8bf080
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-12/film
@@ -0,0 +1 @@
+Shanghai Color 400
diff --git a/www/photo.causal.agency/2024-09-12/lens b/www/photo.causal.agency/2024-09-12/lens
new file mode 100644
index 00000000..b7c8829c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-12/lens
@@ -0,0 +1 @@
+Yashica ML 42–75mm ƒ/3.5–4.5
diff --git a/www/photo.causal.agency/2024-09-14/body b/www/photo.causal.agency/2024-09-14/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-14/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-09-14/film b/www/photo.causal.agency/2024-09-14/film
new file mode 100644
index 00000000..0fb06431
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-14/film
@@ -0,0 +1 @@
+Fomapan Creative 200, Harman Phoenix 200
diff --git a/www/photo.causal.agency/2024-09-14/lens b/www/photo.causal.agency/2024-09-14/lens
new file mode 100644
index 00000000..b7c8829c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-14/lens
@@ -0,0 +1 @@
+Yashica ML 42–75mm ƒ/3.5–4.5
diff --git a/www/photo.causal.agency/2024-09-15/body b/www/photo.causal.agency/2024-09-15/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-15/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-09-15/film b/www/photo.causal.agency/2024-09-15/film
new file mode 100644
index 00000000..c3e0e2b4
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-15/film
@@ -0,0 +1 @@
+Harman Phoenix 200, Ilford FP4 Plus 125
diff --git a/www/photo.causal.agency/2024-09-15/lens b/www/photo.causal.agency/2024-09-15/lens
new file mode 100644
index 00000000..b7c8829c
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-15/lens
@@ -0,0 +1 @@
+Yashica ML 42–75mm ƒ/3.5–4.5
diff --git a/www/photo.causal.agency/2024-09-22/body b/www/photo.causal.agency/2024-09-22/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-22/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-09-22/film b/www/photo.causal.agency/2024-09-22/film
new file mode 100644
index 00000000..44fd8200
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-22/film
@@ -0,0 +1 @@
+Shanghai Color 400, Ilford Delta 100
diff --git a/www/photo.causal.agency/2024-09-22/lens b/www/photo.causal.agency/2024-09-22/lens
new file mode 100644
index 00000000..d1617296
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-22/lens
@@ -0,0 +1 @@
+Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/2024-09-28/body b/www/photo.causal.agency/2024-09-28/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-28/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-09-28/film b/www/photo.causal.agency/2024-09-28/film
new file mode 100644
index 00000000..186deeaa
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-28/film
@@ -0,0 +1 @@
+Wolfen NC500
diff --git a/www/photo.causal.agency/2024-09-28/lens b/www/photo.causal.agency/2024-09-28/lens
new file mode 100644
index 00000000..d1617296
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-28/lens
@@ -0,0 +1 @@
+Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/2024-09-29/body b/www/photo.causal.agency/2024-09-29/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-29/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-09-29/film b/www/photo.causal.agency/2024-09-29/film
new file mode 100644
index 00000000..75a90c86
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-29/film
@@ -0,0 +1 @@
+Ilford FP4 Plus 125
diff --git a/www/photo.causal.agency/2024-09-29/lens b/www/photo.causal.agency/2024-09-29/lens
new file mode 100644
index 00000000..038971f7
--- /dev/null
+++ b/www/photo.causal.agency/2024-09-29/lens
@@ -0,0 +1 @@
+Takumar 35mm ƒ/3.5, Takumar 135mm ƒ/3.5
diff --git a/www/photo.causal.agency/2024-10-01/body b/www/photo.causal.agency/2024-10-01/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-01/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-10-01/film b/www/photo.causal.agency/2024-10-01/film
new file mode 100644
index 00000000..dd589471
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-01/film
@@ -0,0 +1 @@
+Harman Phoenix 200
diff --git a/www/photo.causal.agency/2024-10-01/lens b/www/photo.causal.agency/2024-10-01/lens
new file mode 100644
index 00000000..a88822d3
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-01/lens
@@ -0,0 +1 @@
+Takumar 135mm ƒ/3.5, Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/2024-10-05/body b/www/photo.causal.agency/2024-10-05/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-05/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-10-05/film b/www/photo.causal.agency/2024-10-05/film
new file mode 100644
index 00000000..6bb4ba69
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-05/film
@@ -0,0 +1 @@
+Ferrania P30, Harman Phoenix
diff --git a/www/photo.causal.agency/2024-10-05/lens b/www/photo.causal.agency/2024-10-05/lens
new file mode 100644
index 00000000..d1617296
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-05/lens
@@ -0,0 +1 @@
+Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/2024-10-06/body b/www/photo.causal.agency/2024-10-06/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-06/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-10-06/film b/www/photo.causal.agency/2024-10-06/film
new file mode 100644
index 00000000..968fca45
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-06/film
@@ -0,0 +1 @@
+CineStill 800T
diff --git a/www/photo.causal.agency/2024-10-06/lens b/www/photo.causal.agency/2024-10-06/lens
new file mode 100644
index 00000000..d1617296
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-06/lens
@@ -0,0 +1 @@
+Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/2024-10-12/body b/www/photo.causal.agency/2024-10-12/body
new file mode 100644
index 00000000..6a2a5ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-12/body
@@ -0,0 +1 @@
+Yashica FX-2
diff --git a/www/photo.causal.agency/2024-10-12/film b/www/photo.causal.agency/2024-10-12/film
new file mode 100644
index 00000000..7c8bf080
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-12/film
@@ -0,0 +1 @@
+Shanghai Color 400
diff --git a/www/photo.causal.agency/2024-10-12/lens b/www/photo.causal.agency/2024-10-12/lens
new file mode 100644
index 00000000..87eda797
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-12/lens
@@ -0,0 +1 @@
+Yashica MC 35–70mm ƒ/3.5–4.5
diff --git a/www/photo.causal.agency/2024-10-17/body b/www/photo.causal.agency/2024-10-17/body
new file mode 100644
index 00000000..0962ee7d
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-17/body
@@ -0,0 +1 @@
+Yashica FX-3
diff --git a/www/photo.causal.agency/2024-10-17/film b/www/photo.causal.agency/2024-10-17/film
new file mode 100644
index 00000000..fb690ad8
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-17/film
@@ -0,0 +1 @@
+Fomapan Creative 200
diff --git a/www/photo.causal.agency/2024-10-17/lens b/www/photo.causal.agency/2024-10-17/lens
new file mode 100644
index 00000000..13f1fc49
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-17/lens
@@ -0,0 +1 @@
+Yashica DSB 50mm ƒ/1.9
diff --git a/www/photo.causal.agency/2024-10-20/body b/www/photo.causal.agency/2024-10-20/body
new file mode 100644
index 00000000..1828b2a2
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-20/body
@@ -0,0 +1 @@
+Zenit-122
diff --git a/www/photo.causal.agency/2024-10-20/film b/www/photo.causal.agency/2024-10-20/film
new file mode 100644
index 00000000..7c8bf080
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-20/film
@@ -0,0 +1 @@
+Shanghai Color 400
diff --git a/www/photo.causal.agency/2024-10-20/lens b/www/photo.causal.agency/2024-10-20/lens
new file mode 100644
index 00000000..cf233451
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-20/lens
@@ -0,0 +1 @@
+Helios 44M-5 58mm ƒ/2, SMC Takumar 35mm ƒ/3.5
diff --git a/www/photo.causal.agency/2024-10-23/body b/www/photo.causal.agency/2024-10-23/body
new file mode 100644
index 00000000..eafb759d
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-23/body
@@ -0,0 +1 @@
+Praktica MTL3
diff --git a/www/photo.causal.agency/2024-10-23/film b/www/photo.causal.agency/2024-10-23/film
new file mode 100644
index 00000000..7c8bf080
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-23/film
@@ -0,0 +1 @@
+Shanghai Color 400
diff --git a/www/photo.causal.agency/2024-10-23/lens b/www/photo.causal.agency/2024-10-23/lens
new file mode 100644
index 00000000..abcaed38
--- /dev/null
+++ b/www/photo.causal.agency/2024-10-23/lens
@@ -0,0 +1 @@
+Super-Takumar 135mm ƒ/3.5, Pentacon 50mm ƒ/1.8
diff --git a/www/photo.causal.agency/generate.sh b/www/photo.causal.agency/generate.sh
index 26279229..be673790 100644
--- a/www/photo.causal.agency/generate.sh
+++ b/www/photo.causal.agency/generate.sh
@@ -104,14 +104,21 @@ photo_id() {
 
 page_photo() {
 	local photo=$1 preview=$2 description=$3
-	if ! test -f $description; then
-		description=/dev/null
-	fi
 	photo_info $photo
 	cat <<-EOF
 	<figure id="$(photo_id $photo)">
 		<a href="${photo##*/}">
+	EOF
+	if test -f $description; then
+		cat <<-EOF
 			<img src="../${preview}" alt="$(encode $description)">
+		EOF
+	else
+		cat <<-EOF
+			<img src="../${preview}">
+		EOF
+	fi
+	cat <<-EOF
 		</a>
 		<figcaption>
 	EOF
@@ -123,11 +130,15 @@ page_photo() {
 			${PhotographicSensitivity} ISO
 		EOF
 	fi
-	cat <<-EOF
+	if test -f $description; then
+		cat <<-EOF
 			<details>
 				<summary>description</summary>
 				$(encode $description)
 			</details>
+		EOF
+	fi
+	cat <<-EOF
 		</figcaption>
 	</figure>
 	EOF
diff --git a/www/photo.causal.agency/trips.html b/www/photo.causal.agency/trips.html
index 6c65b7c0..547f7ba2 100644
--- a/www/photo.causal.agency/trips.html
+++ b/www/photo.causal.agency/trips.html
@@ -1,10 +1,14 @@
 <!DOCTYPE html>
-<title>Camera Trips</title>
+<title>Photo Trips</title>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
 <style>
-body { font-family: sans-serif; line-height: 1.5em; }
+body {
+	font-family: sans-serif;
+	line-height: 1.5em;
+	max-width: 52ch;
+}
 input, button, select { font-size: 100%; }
 form {
 	display: grid;
@@ -33,8 +37,12 @@ input[type="number"] { width: 5ch; }
 
 <datalist id="films">
 	<option>Harman Phoenix 200</option>
-	<option>Ilford HP5 Plus 400</option>
 	<option>Shanghai Color 400</option>
+	<option>CineStill 800T</option>
+	<option>Ilford HP5 Plus 400</option>
+	<option>Ilford FP4 Plus 125</option>
+	<option>Ilford Delta 100</option>
+	<option>Fomapan Creative 200</option>
 	<option>Fomapan Action 400</option>
 </datalist>
 </section>
@@ -114,17 +122,27 @@ let nextId = +localStorage.getItem("nextId") || 1;
 
 document.getElementById("trip-date").valueAsDate = new Date();
 
+function removeButton(onclick) {
+	let remove = document.createElement("a");
+	remove.appendChild(document.createTextNode("⛔"));
+	remove.onclick = onclick;
+	return remove;
+}
+
 function setBodies() {
 	localStorage.setItem("bodies", JSON.stringify(bodies));
 	let ul = document.querySelector("#bodies > ul");
 	let selects = document.querySelectorAll("select.body");
 	ul.innerHTML = "";
 	selects.forEach(select => select.innerHTML = "");
-	for (body of bodies) {
+	for (let [index, body] of bodies.entries()) {
 		let li = document.createElement("li");
-		li.appendChild(document.createTextNode(`${body.name} (${body.mount})`));
+		li.appendChild(document.createTextNode(`
+			${body.name} (${body.mount})
+		`));
+		li.appendChild(removeButton(removeBody.bind(null, index)));
 		ul.appendChild(li);
-		for (select of selects) {
+		for (let select of selects) {
 			let option = document.createElement("option");
 			option.appendChild(document.createTextNode(body.name));
 			select.appendChild(option);
@@ -141,18 +159,19 @@ function lensString(lens) {
 		${lens.name}
 		${endashify(lens.focalLength)}mm
 		ƒ/${endashify(lens.aperture)}
-	`;
+	`.replace(/\s+/g, " ").trim();
 }
 
 function setLenses() {
 	localStorage.setItem("lenses", JSON.stringify(lenses));
 	let ul = document.querySelector("#lenses > ul");
 	ul.innerHTML = "";
-	for (lens of lenses) {
+	for (let [index, lens] of lenses.entries()) {
 		let li = document.createElement("li");
 		li.appendChild(document.createTextNode(`
 			${lensString(lens)} (${lens.mount})
 		`));
+		li.appendChild(removeButton(removeLens.bind(null, index)));
 		ul.appendChild(li);
 	}
 }
@@ -180,20 +199,24 @@ function setTrips() {
 	localStorage.setItem("trips", JSON.stringify(trips));
 	let ul = document.querySelector("#trips > ul");
 	ul.innerHTML = "";
+	let tripsByRoll = Object.groupBy(trips, trip => trip.rollId);
 	for (let rollId = nextId - 1; rollId > 0; --rollId) {
-		let rollTrips = trips.filter(trip => trip.rollId == rollId);
-		if (rollTrips.length == 0) continue;
+		let rollTrips = tripsByRoll[rollId];
+		if (!rollTrips) continue;
 		let rollLi = document.createElement("li");
-		rollLi.appendChild(document.createTextNode(`
-			${rollTrips[0].film} (${rollTrips[0].body})
-		`));
+		let rollB = document.createElement("b");
+		rollB.appendChild(document.createTextNode(rollTrips[0].film));
+		rollLi.appendChild(rollB);
+		rollLi.appendChild(document.createTextNode(` (${rollTrips[0].body})`));
 		let rollUl = document.createElement("ul");
-		for (trip of rollTrips) {
+		for (let trip of rollTrips) {
 			let li = document.createElement("li");
-			li.appendChild(document.createTextNode(`
-				${trip.date}:
-				${trip.firstExposure}–${trip.lastExposure}
-			`));
+			let b = document.createElement("b");
+			b.appendChild(document.createTextNode(trip.date));
+			li.appendChild(b);
+			li.appendChild(document.createTextNode(
+				`: ${trip.firstExposure}–${trip.lastExposure}`
+			));
 			li.appendChild(document.createElement("br"));
 			li.appendChild(document.createTextNode(trip.lens));
 			if (trip.note) {
@@ -218,6 +241,10 @@ function setTripBody() {
 		option.appendChild(document.createTextNode(lensString(lens)));
 		select.appendChild(option);
 	}
+	let lastTrip = trips.findLast(trip => trip.body == bodyName);
+	if (lastTrip) {
+		select.value = lastTrip.lens;
+	}
 	let roll = rolls[body.name];
 	if (roll) {
 		document.getElementById("trip-film").value = roll.film;
@@ -249,6 +276,17 @@ function addBody() {
 	clearForm(form);
 }
 
+function removeBody(index) {
+	let body = bodies[index];
+	if (!confirm(`Are you sure you want to remove ${body.name}?`)) {
+		return;
+	}
+	bodies.splice(index, 1);
+	delete rolls[body.name];
+	setBodies();
+	setRolls();
+}
+
 function addLens() {
 	let form = document.querySelector("#lenses > form");
 	if (!form.checkValidity()) return;
@@ -261,6 +299,16 @@ function addLens() {
 	clearForm(form);
 }
 
+function removeLens(index) {
+	let lens = lenses[index];
+	if (!confirm(`Are you sure you want to remove ${lensString(lens)}?`)) {
+		return;
+	}
+	lenses.splice(index, 1);
+	setLenses();
+	setTripBody();
+}
+
 function loadRoll() {
 	let form = document.querySelector("#rolls > form");
 	if (!form.checkValidity()) return;