A python stop-motion script that keeps things simple® and allows to use a DSLR or raspicam for capture.
locales | ||
config.toml | ||
kisstopmo.xbm | ||
kisstopmo.xcf | ||
main_c.py | ||
readme.md | ||
requirements.txt | ||
stopi.sh | ||
Tuffy_Bold.ttf |
Stopi
A python stop-motion script that keeps things simple and allows to use a DSLR or raspicam for capture.
- Full screen display of the last picture taken
- Optional Onion Skinning with the second to last picture
- No gui : everything is done with keyboard keys (or a homemade rpi pico based remote) and a config file
- Auto configuration of the DSLR on startup
- Key or event mode ; use your DSLR's trigger button or IR remote and images are automatically downloaded after capture
- Preview playback
- Full HD export with ffmpeg
- Uses translations
Disclaimer
This script was tested with a Nikon D40x DSLR and a rpi 4 B + raspicam module v3. It might not work with other hardware.
Issues reports and commits are welcome !
Setup
- (Windows users only) Setup WSL2 on your (P)OS and install a Debian based distro (Debian, Mint, Ubuntu...)
- Install dependencides :
sudo apt install --no-install-recommends --no-install-suggests git ffmpeg gphoto2 python3-libcamera python3-picamera2 python3-tk
(Optional) If you want a minimal graphical environment :sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter
- Clone the repo :
git clone https://
- Change to directory :
cd stopimotion
- Create Python venv :
python -m venv ./
(If planning to use a raspicam, you need to also pass the--system-site-packages
parameter to be able to import the GPIO module.) - Install dependencies :
pip install -r requirements.txt
- Plug your DSLR/setup your raspicam
- Set Execution bit on script :
chmod +x stopi.sh
- Launch script :
./stopi.sh
Todo / Fix me
- UI freezes when exporting
- Better settings names ; currently they're kinda cryptic and sucky.
- Notify ffmpeg export ending
Planned features
- Liveview (when I get a DSLR that supports it :))
- Webcam support (e.g; using pygame)
Raspberry Pi image
For convenience, a disk image will soon be available here for RPI users.
Kiosk like setup
For advanced users, the steps for preparing RaspiOS for a minimal kiosk-like experience are these :
- Flash Raspi OS bookworm lite version to a SD card, enabling SSH, Wifi, etc if needed.
- Follow the steps in the 'Setup' section above.
- Use the 'raspi-config' utility to enable console auto-login.
- Add this content to '~/.bash_login' :
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
startx
fi
- Add this content to '~/.xinitrc' :
#!/bin/sh
# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)
# invoke global X session script
. /etc/X11/Xsession
exec openbox-session
- Add this content to '~/.config/openbox/autostart.sh' :
#!/bin/env bash
# Change X keyboard mapping
setxkbmap fr
# Set background color
hsetroot -solid "#8393CC"
# Hide mouse after 0.2 seconds
unclutter -idle 0.2 &
# Start script
/home/$USER/stopi.sh &
When you reboot, the X session should launch automatically, and then the script.