This solution becomes a bit simpler (I think) when it's generalized to volumes, but as I wanted this to work with any type of mesh (even those without volume) this was the approach I chose:
High Level
- Offset all the meshes you want to display by a fixed distance along the x axis within a collection
- create a tool (just a box) to the left and right of a window
- use those tools to remove all meshes besides the window you want to preserve
- do a reverse offset so that everything happens at a fixed point in space
Result
Breakdown
inputs
- the offset defines where the current "frame" is
- the tool width, depth, and height defines the size of the tools used to cut (so that they can be changed as needed)
- the mask width defines how large of a window can be seen between the tools. Effectively, this is the size of the viewing winodw
Tool Creation
two tools get created and added together as a single mesh. This is the actual tool creation subgraph
the is_tool_2
boolean defines if the tool is the one to the left or right of the window. This should be 0 or 1.
Buttoning up
the tools are used to cut the meshes in the collection, then the offset is reversed to give the desired effect.
Summary
So, in terms of this question specifically, the offset can be animated to change which mesh is displayed. For my first time using geometry nodes, I'm pretty chuffed! For posterity I'm going to add some keywords to this solution for the google bots to chew on:
ticker tape, rolling window, mesh selection