Project & Team
This page describes the ThreeML project organisation and the main roles and responsibilities in the ThreeML team. This structure was set in place in 2024, but we expect this structure to evolve over the coming years, adapting to the size and composition of the ThreeML development team, and the requirements and needs of scientists and projects using ThreeML. If you would like to become part of the ThreeML team, please get in contact. Help is always welcome!
Overview
The following sections describe the major roles and responsibilities in the ThreeML team:
Coordination Committee
The ThreeML coordination committee (CC) is the board that is responsible to promote, coordinate and steer ThreeML developments. It also serves as main contact point for the ThreeML project. The CC is composed by the ThreeML principal investigator, release manager, and plug-ins point of contacts.
Responsibilities include:
Being the point of contact for the ThreeML project.
Promote the use of ThreeML by new projects.
Keep the overview of ongoing activities, schedules and action items and follow up to make sure all important things get done.
Make decisions on the scope, content and development priorities for the ThreeML package.
Support and grow the ThreeML team (help find people-power and funding)
Support and coordinate the use of ThreeML for scientific or technical studies and papers
Organize and drive all non-technical aspects of the project on a day-to-day basis.
Keep an overview and help coordinate all activities that have some involvement of ThreeML, such as e.g. papers, presentations or posters about or using ThreeML at gamma-ray or X-ray astronomy meetings or conferences, or tutorials at schools / workshops on gamma-ray astronomy data analysis.
Manage the ThreeML developer / maintainer / contributor team. Distribute tasks and assign responsibilities to other ThreeML developers.
Ensure that anyone interested in contributing to ThreeML development has good resources (documentation, communication, mentoring) to get started. Specifically: maintain the ThreeML developer documentation that describes all aspects of ThreeML development (code, testing, documentation, processes).
Organize ThreeML developer calls and coding sprints via ThreeML-meetings
Schedule ThreeML releases and define which fixes and features go in which release, taking the needs of people and projects using ThreeML as well as available manpower for developments into account. Either execute releases directly or assign a release manager.
Monitor and assign of issues and pull requests,
Ensure ThreeML infrastructure is well set up and maintained (issue tracker and pull requests on Github, continuous integration tests, documentation builds, releases and distribution).
Current CC members:
Nicola Omodei (PI) - Stanford University
Niccolò Di Lalla (Release manager, IXPE) - Stanford University
Israel Martinez Castellanos (cosipy) - NSFC
Tobias Preis (gammapy-plugin) - University of Innsbruck
Principal Investigator
The ThreeML Principal Investigator (PI) is in charge of seeking funding, they overview the work and work closely with the ThreeML coordination committee, lead developers, contributors and users.
Responsibilities include:
Maintain ThreeML communication channels (mailing lists, slack, github, …)
Serve as ThreeML coordination committee secretary (schedule and moderate calls; give status reports; write minutes)
Serve on the ThreeML coordination committee, as the link between CC and the development team.
Appoint the ThreeML managers (non-technical lead) and lead developers (technical lead)
Organise ThreeML user calls and training events via ThreeML-meetings
Review the documents are properly reviewed and eventually decisions made by the CC.
Current ThreeML PI:
Nicola Omodei - Stanford University
Lead developers
The lead developers are the technical executive leads for the ThreeML project. The lead developers are appointed by the ThreeML coordination committee, and work closely with the ThreeML coordination committee, project managers and contributors.
Responsibilities include:
Organize and drive all technical aspects of the project on a day-to-day basis. Keep the overview of ongoing activities, schedules and action items and follow up to make sure all important things get done.
Evaluating new pull requests for quality, API consistency and ThreeML coding standards,
Supporting developers on tasks associated to the sub-package(s),
Taking care of the global design of the sub-package(s) in the context of the global ThreeML architecture, participating to the User Support for questions related to the sub-package(s).
Solve, comment, or re-assign issues and pull requests.
Current ThreeML lead developers:
Niccolò Di Lalla (Release manager) - Stanford University
Nicola Omodei (PI) - Stanford University
Sub-package and plug-in maintainers and point of contacts
Responsibilities include:
Solve, comment or reassign issues and pull requests.
support development on tasks associated to the sub-package(s),
evaluating new pull requests for quality, API consistency and ThreeML coding standards,
taking care of the global design of the sub-package(s) in the context of the global ThreeML architecture,
participating to the User Support for questions related to the sub-package(s).
Contributors and previous core developers
Some of the original ThreeML developer have left the academia or move to different jobs. Nonetheless we want to acknowledge their original involvement and vision in creating ThreeML.
Giacomo Vianello
Michael Burgess
Henrike Fleischhack
Supporting institutions
People involved in ThreeML are coming from different institutions, laboratories and universities. We acknowledge them for their daily support.
Grants
Grants that are supporting the development of ThreeML:
National Science Foundation (NSF): award number: 2011759 P.I.: Nicola Omodei (Stanford University)