Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion COPYING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ This is the list of copyright holders of rubix.
For information on the license, see LICENSE.md.


* Ufuk Çakır, 2024
* AstroAI-Lab, 2025
54 changes: 49 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
# Welcome to rubix
<p align="center">
<img src="./logo_rubix.png" alt="Rubix Logo" width="30%">
</p>

# Welcome to RUBIX

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ufuk-cakir/rubix/ci.yml?branch=main)](https://github.com/ufuk-cakir/rubix/actions/workflows/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/rubix/badge/)](https://rubix.readthedocs.io/)
[![codecov](https://codecov.io/gh/ufuk-cakir/rubix/branch/main/graph/badge.svg)](https://codecov.io/gh/ufuk-cakir/rubix)
[![All Contributors](https://img.shields.io/github/all-contributors/ufuk-cakir/rubix?color=ee8449&style=flat-square)](#contributors)

RUBIX is a versatile Integral Field Unit (IFU) tool designed for astrophysical simulations. It transforms any particle based galaxy model (e.g. cosmological hydrodynamical simulation outputs) into realistic mock IFU cubes, enabling both forward and inverse modeling. Built on JAX, RUBIX leverages GPU acceleration and automatic differentiation, allowing users to perform gradient-based optimization for inverse modeling alongside traditional forward modeling.

Key features include:
- **Mock IFU Cube Generation:** Convert simulation data into realistic IFU cubes.
- **GPU-Accelerated Computations:** Built on JAX for high-performance GPU support.
- **Gradient-Based Inverse Modeling:** Utilize gradients for efficient inverse modeling techniques.
- **Flexible and Extensible:** Designed to easily integrate with existing pipelines and astrophysical analysis tools.

## Installation

The Python package `rubix` can be downloades from git and can be installed:

```
git clone https://github.com/ufuk-cakir/rubix
git clone https://github.com/AstroAI-Lab/rubix.git
cd rubix
pip install .
```
Expand All @@ -22,7 +34,7 @@ If you want to contribute to the development of `rubix`, we recommend
the following editable installation from this repository:

```
git clone https://github.com/ufuk-cakir/rubix
git clone https://github.com/AstroAI-Lab/rubix.git
cd rubix
python -m pip install --editable .[tests]
```
Expand All @@ -40,8 +52,40 @@ please refer to [here](https://github.com/google/jax?tab=readme-ov-file#installa
## Documentation
Sphinx Documentation of all the functions is currently available under [this link](https://astro-rubix.web.app/).

## Configuration Generator Tool
A tool to interactively generate a user configuration is available under [this link](https://cakir-ufuk.de/docs/getting-started/configuration/).
## Contribution

Contributions to `rubix` are welcome and greatly appreciated!
Whether you're fixing bugs, improving documentation, or suggesting new features, your help is valuable to us.


### 1. File your issue

If you find a bug or think of an enhancement, please open an issue on GitHub. For example, you might write an issue like:

- **Title:** Fix incorrect galaxy rotation calculation
- **Description:**
The galaxy rotation function (rotate_galaxy) does not properly convert angle inputs, causing unexpected behavior when non-scalar JAX arrays are passed. Please investigate and fix this conversion so that it accepts a Python float.

### 2. Create a branch for your issue

After creating the issue, create a new branch from `main` following a clear naming convention - e.g. name it such that the following sentence makes sense: ```If applied, this branch does/adds/ *name-of-branch*.```
For example:

```bash
git checkout -b fix/rotate-galaxy-angle
```

Work on your changes in this branch. Make sure to write tests and update documentation if necessary.

### 3. Submit a pull request

Once your changes pass all tests locally and the branch is up to date with `main`, create a pull request (PR) on GitHub. Describe the problem, your approach, and link the original issue so that the issue is automatically closed upon merge.

### 4. Merge and get recognition

After your PR is reviewed and merged into `main`, your contributions will be recognized automatically. Thanks to our All Contributors setup, a bot or a maintainer will add you to the contributors list in the README file. You'll then appear in the All Contributors section below.

Thank you for helping improve `rubix`!

## Acknowledgments

Expand Down
2 changes: 1 addition & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The following tasks need to be done to get a fully working project:
In order to do so, you have to head to the "Publishing" tab, scroll to the bottom
and add a "new pending publisher". The relevant information is:
* PyPI project name: `rubix`
* Owner: `ufuk-cakir`
* Owner: `AstroAI-Lab`
* Repository name: `rubix`
* Workflow name: `pypi.yml`
* Environment name: not required
Expand Down
Binary file added logo_rubix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
name = "rubix"
description = "Add short description here"
readme = "README.md"
maintainers = [{ name = "Ufuk Çakır", email = "ufukcakir2001@gmail.com" }]
maintainers = [{ name = "AstroAI-Lab", email = "astroai@iwr.uni-heidelberg.de" }]
dynamic = ["version"]
requires-python = ">=3.9"
license = { text = "MIT" }
Expand Down
Loading