Skip to content

About Coho

Coho is a Python-based platform designed for flexible and extensible imaging experiments. It provides a comprehensive set of tools for modeling, simulating, and analyzing imaging systems. It is built on top of JAX, a library for high-performance numerical computing with an emphasis on scientific computing and research-oriented workflows.

Why Coho?

Coho bridges the gap between scientific rigor and practical usability, making it the ideal platform for advanced imaging experiments. Its design emphasizes flexibility, scalability, and collaboration across disciplines.

  • Unified Framework: A single codebase for diverse imaging systems, reducing redundancy.

  • Modularity and Collaboration: Extendable architecture supports teamwork without requiring expertise across all disciplines.

  • Ease of Maintenance: JAX-based modular design ensures scalable, intuitive, and easily updatable code.

Why JAX?

We use JAX for its unique combination of performance, flexibility, and ease of use. Here’s why:

  • Functional and Modular: JAX emphasizes pure functions, ensuring clean, testable, and research-friendly code.

  • Performance with JIT: jit compiles computations into efficient machine code at runtime, boosting performance.

  • Elegant Vectorization: vmap simplifies batch processing, reducing manual loops and boilerplate.

  • Scientific Focus: Native support for FFTs, complex numbers and scientific computing makes JAX ideal for research.

  • Composability: Primitives like grad, jit, and vmap enable intuitive construction of complex workflows.

  • Hardware Acceleration: Seamlessly supports CPUs, GPUs, and TPUs, making scaling easy.

  • Parallel Processing: pmap facilitates parallel and distributed computation for large-scale tasks.

  • Expanding Ecosystem: Libraries like Haiku (neural networks) and Optax (optimization) extend JAX’s versatility.