Cover image for Seeking Reproducible Research Software: How the UW Scientific Software Engineering Center Adopted Pixi
Written on

Seeking Reproducible Research Software: How the UW Scientific Software Engineering Center Adopted Pixi

Anshul Tambay
Anshul Tambay
Don Setiawan
Don Setiawan

Guest blog post by Don Setiawan, Principal Research Software Engineer and Anshul Tambay, Technical Program Manager
UW Scientific Software Engineering Center (SSEC)

At the University of Washington Scientific Software Engineering Center (SSEC), our mission is to enhance our partners software development capabilities to bolster their research. We collaborate with scientists across a vast range of disciplines—from biodiversity and bioethics to education and natural disasters—to build open-source, sustainable software that accelerates discovery. In scientific research, reproducibility is the gold standard. The ability for another researcher to take your code, data, and environment to arrive at the exact same results is essential.

For years, our team, like many in the scientific community, relied on Conda for package management. While Conda is a powerful tool, the classic workflow involving a fragmented approach with separate systems for managing environment and dependencies with Conda and PyPI as well as manual lockfile creation presented recurring challenges. These complexities were a distraction, as Don put it, “I don’t want to bloat my laptop to share development environments with others.”

Discovering Pixi

Our journey to Pixi wasn’t a single leap but a series of discoveries that culminated in a collective adoption. It began with a simple Slack message from a colleague Scott Henderson (Xarray core maintainter), in 2023, who had stumbled upon Pixi. Intrigued, we started to explore. A conversation with the creator of Pixi, Wolf at the 2024 SciPy conference further piqued our interest. The real turning point, however, came in the fall of 2024 when we embarked on a project involving the creation of Rust-based Python software library. We needed a tool that could seamlessly handle both ecosystems. pixi was the answer. We were so impressed by the flexibility, speed, and ease of use. The project can be found here: https://github.com/uw-ssec/phylo2vec.

Why Pixi is a Game-Changer for Researchers

Pixi isn’t just another package manager; it’s a paradigm shift for research workflows. It takes the best parts of Conda and elevates them into a cohesive, intuitive experience. Here’s why we love it:

Feature

How it Revolutionizes Research Workflows

Unified Dependency Management

Pixi manages both Conda and PyPI packages from a single pyproject.toml or pixi.toml file. This eliminates the juggling act of multiple dependency files and provides a single source of truth for a project.

Automatic Lockfiles

Pixi automatically generates a lockfile (pixi.lock) every time a dependency is added or changed. This guarantees that every member of the team, and anyone else who uses the project, has the exact same environment, every time.

Project-Based Environments

With Pixi, everything is a project. Environments are self-contained and defined within the project directory. This eliminates the “don’t touch the base environment” anxiety and makes projects easily portable.

Blazing Speed

Written in Rust and using the resolvo solver and uv for PyPI packages, Pixi is incredibly fast. This means less time waiting for environments to be created or updated, and more time doing research.

Tasks

With Pixi “tasks”, users can designate items for single line CLI execution, such as demos, tests, and other project workflows. This way, even a cursory look at a new codebase is possible for new contributors with a few lines of code.

The ICESat-2 Developer Workshop

Our confidence in pixi led us to share it with the broader research community. In the summer of 2025, we ran a Pixi workshop at the ICESat-2 Developer Workshop. The ICESat-2 community, a group of scientists and developers focused on NASA’s ice-monitoring satellite mission, is a close-knit group that has worked together for years. This provided a perfect opportunity for a focused use-case. The feedback was overwhelmingly positive. Researchers who had long grappled with the complexities of sharing and reproducing their software environments saw the immediate benefits of Pixi's streamlined approach.

Contributing to the Pixi Community

Our positive experience with Pixi inspired us to contribute back to the project. We submitted a pull request to the pixi documentation to add the mkdocs-llmstxt plugin. This will make the documentation more accessible to Large Language Models (LLMs), enabling AI agents to more easily generate pixi configurations and use the tool. It’s a small contribution, but it reflects our belief in the power of open-source and our commitment to making this amazing tool even better.

Building Pixi “Skills”

At SSEC, we are now leveraging pixi as the foundation in building our next generation of tools. As part of our RSE-plugins initiative to enable agentic support of research software engineering, we are actively developing specialized "Skills" to automate and standardize complex, reproducible workflows for scientific Python development.

Skills are modular, reusable components that allow AI agents to perform complex, multi-step tasks by providing them with specialized knowledge and tool access. We have developed a dedicated pixi-package-manager Skill to standardize and automate the use of Pixi in scientific Python development. This Skill encapsulates the best practices for managing complex scientific packages and environments using Pixi. When an AI agent is tasked with starting or adapting a scientific project, it can invoke this Skill to:

  • Set up a reproducible environment using a single pixi.toml file.

  • Manage dependencies that require both Conda-forge and PyPI packages.

  • Ensure cross-platform compatibility for projects involving compiled libraries.

This integration transforms how researchers interact with their development environments. Instead of manually wrestling with configuration files or resolving complex dependency conflicts, a researcher can simply tell an AI agent their intent—for example, "set up a reproducible environment for this genomics pipeline that includes these specific compiled libraries." The Pixi Skill then empowers the agent to handle the technical heavy lifting: resolving dependencies, generating lockfiles, and ensuring the environment is perfectly configured for the task at hand. By making reproducibility as simple as a natural language prompt, we hope to lower the barrier to entry for robust scientific software engineering and allowing researchers to spend more time on their science.

Conclusion

For the research software engineers at SSEC, Pixi has been a transformative tool. It has allowed us to move beyond the friction of package management and focus on what truly matters: writing better, more reproducible scientific software. While other tools may focus on the developer workflow, Pixi has proven to be the ideal solution for the unique challenges of the researcher workflow. It’s fast, efficient, and empowers us to easily share our open-source work with contributors and users alike.

If you’re curious about how we use Pixi across our projects, please visit https://github.com/uw-ssec to find out more.