🎨 DataPainter

Terminal UI for creating two-dimensional datasets

DataPainter is a powerful TUI (Terminal User Interface) application for creating and managing two-dimensional datasets. Paint data points onto a 2D grid and save them directly into SQLite databases for machine learning, data analysis, and visualization tasks.

DataPainter screenshot showing the terminal UI with 2D grid and data points

Key Features

Interactive 2D Grid

Navigate and place data points on a 2D coordinate plane using simple keyboard controls. Support for zoom, pan, and viewport management.

SQLite Storage

Direct integration with SQLite databases. All data points are automatically saved with proper indexing for fast retrieval.

Dual View Modes

Switch between graphical viewport mode and tabular data view. Filter, sort, and edit points in both modes.

Undo/Redo

Full undo/redo support with change tracking. Review unsaved changes before committing to the database.

CSV Export

Export datasets to CSV format for use with other tools and analysis platforms.

Random Initialization

Generate random datasets with normal or uniform distributions for testing and prototyping.

Installation

Ubuntu/Debian (APT Repository)

# Add the GPG key and verify the fingerprint
wget -qO- https://packages.industrial-linguistics.com/datapainter/PUBLIC.KEY | \
  gpg --import --import-options show-only

# If the fingerprint looks correct, import it to your system
wget -qO- https://packages.industrial-linguistics.com/datapainter/PUBLIC.KEY | \
  sudo gpg --dearmor -o /usr/share/keyrings/datapainter-archive-keyring.gpg

# Add the repository
echo "deb [signed-by=/usr/share/keyrings/datapainter-archive-keyring.gpg] https://packages.industrial-linguistics.com/datapainter stable main" | \
  sudo tee /etc/apt/sources.list.d/datapainter.list

# Update package list and install
sudo apt-get update
sudo apt-get install datapainter

Pre-built Binaries

Download the latest release for your platform:

Building from Source

Ubuntu/Debian

sudo apt-get update
sudo apt-get install -y cmake g++ libsqlite3-dev libncurses-dev

git clone https://github.com/solresol/datapainter.git
cd datapainter
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
sudo cmake --install build

macOS

brew install cmake sqlite3

git clone https://github.com/solresol/datapainter.git
cd datapainter
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
sudo cmake --install build

Quick Start

Basic Usage

# Create a new dataset
datapainter --database mydata.db --table experiments

# Open existing dataset
datapainter --database mydata.db --table experiments

# Import existing table for study
datapainter --database mydata.db --table mytable --study

Keyboard Controls

Documentation