Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/hennesrave/rave2026-multiresolution-replicability
26 July 2026, 13:52:35 UTC
  • Code
  • Branches (1)
  • Releases (0)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/master
    No releases to show
  • c556fe0
  • /
  • README.md
Raw File Download Save again
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
origin badgecontent badge
swh:1:cnt:5286e342addb74fdc84b7f88e43a4485fb0ca98b
origin badgedirectory badge
swh:1:dir:c556fe0feeef8f4e04ec625c6c6e705324231763
origin badgerevision badge
swh:1:rev:d758a8ad59192ac036b52dd41c272df725295b31
origin badgesnapshot badge
swh:1:snp:fe245bd2ad4b184eff2efbc7df480420b4106e63

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
Tip revision: d758a8ad59192ac036b52dd41c272df725295b31 authored by Hennes Rave on 15 July 2026, 18:46:29 UTC
initial commit
Tip revision: d758a8a
README.md
# Multiresolution Density-Equalizing Transformation for Scatterplots

This repository accompanies the paper:

> H. Rave, V. Molchanov, Y. Tatsukawa, Q. Q. Ngo, S. Frey, T. Igarashi, and L. Linsen, "Multiresolution Density-Equalizing Transformation for Scatterplots," *IEEE Transactions on Visualization and Computer Graphics*, 2026. DOI: [10.1109/TVCG.2026.3713630](https://doi.org/10.1109/TVCG.2026.3713630)

The accepted manuscript of the paper is provided in [`paper.pdf`](paper.pdf).

> © 2026 IEEE.  Personal use of this material is permitted.  Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.

The repository provides a self-contained reference implementation of the multiresolution
density-equalizing transformation and a script (`main.py`) that reproduces parts
of **Figure 12** from the paper. Running the script generates `example.png`, which
shows three datasets (Circles, Moons, Clusters) before and after the transformation.

![Original vs. transformed scatterplots for three example datasets](example.png)

## Requirements

- Python 3.8 or newer
- The Python packages listed in [`requirements.txt`](requirements.txt):
  `matplotlib`, `numpy`, `scipy`, `scikit-learn`, and `tqdm`

The script runs on the CPU by default. If [CuPy](https://cupy.dev/) is installed and
a compatible CUDA GPU is available, it automatically uses the GPU implementation for a
significant speedup. GPU support is optional and not required to reproduce the results.

## Installation

We recommend using a fresh virtual environment.

```bash
# 1. (Optional) Create and activate a virtual environment
python -m venv venv

# On Linux / macOS:
source venv/bin/activate
# On Windows (PowerShell):
venv\Scripts\Activate.ps1

# 2. Install the dependencies
pip install -r requirements.txt
```

### Optional: GPU acceleration

To enable GPU acceleration, additionally install the CuPy wheel that matches your
installed CUDA toolkit version, for example:

```bash
# For CUDA 12.x
pip install cupy-cuda12x

# For CUDA 11.x
pip install cupy-cuda11x
```

See the [CuPy installation guide](https://docs.cupy.dev/en/stable/install.html) for
details. If CuPy is not installed, the script transparently falls back to the CPU
implementation.

## Usage

Run the script from this directory:

```bash
python main.py
```

This computes the transformation for all three datasets and writes the resulting
figure to `example.png` in the current directory. A window with the figure is also
displayed. Depending on your hardware, the CPU version may take several minutes to
complete; the GPU version finishes considerably faster.

## Expected output

The generated `example.png` reproduces parts of Figure 12 from the paper: a 2×3 grid
of scatterplots showing the three datasets in their **original** layout (top row) and
after the **multiresolution** density-equalizing transformation (bottom row). A
reference copy of this figure is included in the repository.

## Optimized implementation

An optimized C++/CUDA implementation with Python bindings is available at:

<https://github.com/hennesrave/density-equalizing-transformations>

## Citation

If you use this code, please cite:

```bibtex
@article{rave2026_multiresolution,
  title   = {Multiresolution Density-Equalizing Transformation for Scatterplots},
  author  = {Rave, Hennes and Molchanov, Vladimir and Tatsukawa, Yuki and Ngo, Quynh Quang and Frey, Steffen and Igarashi, Takeo and Linsen, Lars},
  year    = {2026},
  journal = {IEEE Transactions on Visualization and Computer Graphics},
  doi     = {10.1109/TVCG.2026.3713630}
}
```

## License

The source code in this repository is released under the [BSD 3-Clause License](LICENSE).
The accompanying paper (`paper.pdf`) is © 2026 IEEE and is subject to the copyright
notice stated above.

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API