**Q:** Can RIVET handle arbitrary bifiltrations?

**A:**Currently, RIVET handles arbitrary

*1-critical*simplicial bifiltrations, i.e., bifiltered simplicial complexes where each simplex has a unique bigrade of appearance. Support for multicritical and cellular bifiltrations is coming soon.

**Q**: How large a bifiltration can RIVET handle, and how does the performance of RIVET compare to that of 1-D persistence code?

**A**: In RIVET, the computation time is controlled by coarsening the bifiltration, so that the bigrades of appearance of simplices in the bifiltration live on a $k_x$ x $k_y$ grid for some small values of $k_x$ and $k_y$. Choosing relatively small values of $k_x$ and $k_y$ (say $k_x=k_y\sim 15$), we have been able to comfortably compute the 1st persistent homology of bifiltrations coming from real data with $>$ 15 million simplices, using the current code. Compared to what is being done today in in ordinary one-parmeter persistence computation, 15 million simplices is fairly small: State of the art persistence codes now handle some 1-D filtrations with billions of simplices. Still, the current code is powerful enough to allow us to apply RIVET to modestly sized real-world data sets. We expect RIVET to be able to do significantly larger computations soon: The code does not yet take advantage of some critical optimizations to how we compute the main data structure underlying RIVET; we now are in the process of implementing these optimizations. When they are complete, we expect that RIVET will be reasonably competitive with general algorithms for computing 1-D persistent homology in terms scalability. Visualizing 0th persistent homology modules in RIVET is typically much less expensive than for higher degree homology modules, and 0-th persistent homology is often more interesting in the two-parameter setting than in the ordinary one-parameter setting. So if your data set is large, you might try RIVET first with a 0th homology persistence computation.

**Q**: While looking at the RIVET code, I noticed RIVET uses the simplex tree data structure of Boissonnat and Maria to store bifiltrations. Why and how are you using that?

**A**: In the particular context of our code and the way we choose to do 1-D persistence computations there, there is not a great reason to use the simplex tree; in later versions of the code, the simplex tree this will probably be phased out and replaced with hash table-based data structures for representing boundary matrices. This is NOT to suggest that the simplex tree data structure is not useful in other settings; in particular, it is used in the GUHDI code for computing persistent homology, whose performance is considered to be amongst the best of the many persistence codes available.

**Q**: I'm interested in working on the development of RIVET or, more generally on the computational aspects of multi-D persistent homology. Is there room for me to get involved?

**A**: There is a huge amount to do, both on the development side and on the more mathematical side. We'd be happy to talk to you about this.