Skip to content

lostjared/acidcam-dev

Repository files navigation

acidcam-dev

Podman container for the Acid Cam Apps - a collection of real-time video effects and glitch art applications.

acgl

πŸ“‹ Overview

This repository contains scripts to run Acid Cam applications inside a Podman container. The container provides a pre-built development environment with all dependencies included, making it easy to run the following applications:

  • Acid Cam v2 Qt - A Qt-based video effects application
  • AcidCamGL - An OpenGL-accelerated video effects application
  • Glitch GUI - A glitch art and video manipulation tool

πŸ”§ Prerequisites

Before you begin, ensure you have the following installed on your system:

  1. Podman - Container engine (rootless mode recommended)

    # Arch Linux
    sudo pacman -S podman
    
    # Ubuntu/Debian
    sudo apt install podman
    
    # Fedora
    sudo dnf install podman
  2. X11 utilities - For display access (xhost command)

    # Arch Linux
    sudo pacman -S xorg-xhost
    
    # Ubuntu/Debian
    sudo apt install x11-xserver-utils
    
    # Fedora
    sudo dnf install xorg-x11-server-utils
  3. A webcam (optional) - If you want to use live camera input (/dev/video0)

  4. GPU drivers - Ensure your GPU drivers are properly installed for hardware acceleration

πŸš€ Quick Start

Step 1: Clone the Repository

git clone https://github.com/lostjared/acidcam-dev.git
cd acidcam-dev

Step 2: Pull the Container Image

Pull the pre-built container image from GitHub Container Registry:

podman pull ghcr.io/lostjared/acidcam-dev:latest

Step 3: Make Scripts Executable

chmod +x *.sh

Step 4: Run an Application

Choose one of the available applications to run:

Option A: Run Acid Cam v2 Qt

./AcidCam.v2.sh

Option B: Run AcidCamGL

./acidcamGL.sh

Option C: Run Glitch GUI

./glitch.gui.sh

πŸ“ Shared Folder

All scripts automatically create a shared folder at ~/container_share on your host system. This folder is mounted inside the container at /home/developer/share.

Use this folder to:

  • Import video files into the applications
  • Export processed videos and images
  • Transfer files between your host and the container

πŸ“œ Script Descriptions

Script Description Application Path in Container
AcidCam.v2.sh Launches Acid Cam v2 Qt /home/developer/code/Acid.Cam.v2.Qt/src/Acid_Cam_v2_Qt
acidcamGL.sh Launches AcidCamGL /home/developer/code/acidcamGL/acidcamGL_launcher
glitch.gui.sh Launches Glitch GUI /home/developer/code/glitch.gui/glitch.gui/glitch_gui
acidcam-bash.sh Alternative launcher (Wayland) Uses Wayland display protocol

βš™οΈ How It Works

The scripts perform the following operations:

  1. Create shared directory - Sets up ~/container_share for file exchange
  2. Configure X11 access - Grants the container permission to display on your screen
  3. Launch container with:
    • GPU passthrough (/dev/dri) for hardware acceleration
    • Webcam access (/dev/video0) for live video input
    • X11 socket mounting for graphical display
    • Network access for any network-dependent features

πŸ” Troubleshooting

Display Issues

If you encounter display errors:

# Allow X11 connections manually
xhost +local:

# Or for more security, allow only your user
xhost +si:localuser:$(whoami)

Webcam Not Detected

Ensure your webcam device exists and is accessible:

ls -la /dev/video*

If using a different video device, modify the script to use the correct device path.

GPU Acceleration Issues

Verify your GPU is accessible:

ls -la /dev/dri/

Ensure you have the appropriate GPU drivers installed (Mesa, NVIDIA, etc.).

Container Not Starting

If the container hangs or fails to start:

# Check if another container with the same name is running
podman ps -a

# Remove any stopped containers
podman rm acidcam-update-dev

Permission Denied Errors

If you encounter permission issues:

# Ensure scripts are executable
chmod +x *.sh

# Check podman is configured for rootless operation
podman info | grep -i rootless

πŸ–₯️ Wayland vs X11

  • X11 Users: Use AcidCam.v2.sh, acidcamGL.sh, or glitch.gui.sh
  • Wayland Users: Use acidcam-bash.sh (requires additional Wayland configuration)

Most scripts are configured for X11 (QT_QPA_PLATFORM=xcb). If you're on a pure Wayland system, you may need to run an XWayland session or modify the scripts accordingly.

πŸ“ Building the Container Locally (Optional)

If you want to build the container image yourself instead of pulling from the registry:

# Clone the main acidcam-dev repository with Dockerfile
git clone https://github.com/lostjared/acidcam-dev.git
cd acidcam-dev

# Build the image
podman build -t acidcam-dev .

Then modify the scripts to use acidcam-dev instead of ghcr.io/lostjared/acidcam-dev:latest.

πŸ“„ License

See LICENSE for details.

πŸ”— Related Projects


acgl

acgl