MomentoBooth is a cross-platform open source photo booth software. Capture your events in an easy and fun way!
Check the online documentation at https://momentobooth.github.io/momentobooth/.
- Single capture
- Multi-capture
Shoot 4 photos and then select the ones you like to for a collage of 1, 2, 3, or 4 photos - User friendly touch-centered interface
- Photo printing
Lots of settings included to size and position your print well - Photo sharing using
ffsend
QR code - Theming with collage template images (background and foreground)
- Webcam live view and capture support
- Use HDMI capture dongles that act as a webcam
- Use any cameras that support live view over USB through libgphoto2
- Camera capture support
- With Sony Imaging Edge Remote using AutoIt
- Capture using a camera that supports capture over USB through libgphoto2
- Statistics
- Clear settings panel
- Gallery with created images
- Re-print or -share
- Manual collage creation for untethered handheld shooting
- Beautiful animations
- Linux, macOS support
- App already runs but:
- Webcam support doesn't work properly
- Libgphoto2 is not bundled correctly yet
- App already runs but:
- User manual
- Direct printing support (using libusb) to fully control printing queue
- Focus would be on Canon CP1300, Canon CP1500
- Languages: Dart, Rust, C++ (Windows, Linux), Swift (macOS)
- Dart/Rust glue: flutter_rust_bridge
- UI: Flutter
- Webcam: Nokhwa
- Printing: Printing
- Logging: Loggy
- Data classes: Freezed
- Firefox Send client: ffsend-api
- JPEG decoding: zune-jpeg, encoding: jpeg-encoder
On Windows:
- Visual Studio 2022 Build Tools
- Optional: A full Visual Studio 2022 install
- Make sure to select "Desktop development with C++" on the Workloads tab when installing
- Rust (
x86_64-pc-windows-gnu
target)- Install using
rustup
is recommended, to keep all components up to date
- Install using
On macOS:
- Xcode
- Install using App Store is recommended, to keep it up to date
- Rust (
aarch64-apple-darwin
andx86_64-apple-darwin
targets)- Install using
rustup
is recommended, to keep all components up to date
- Install using
On Linux:
- This list of packages from the Flutter website
- The install command provided by the Flutter website may only work on Ubuntu, please check your distro website for the corresponding package names
- Additional packages: llvm, libssl-dev, libdigest-sha-perl
- Rust (
x86_64-unknown-linux-gnu
target)- Install using
rustup
is recommended, to keep all components up to date
- Install using
All platforms:
flutter_rust_bridge_codegen
- Install using Cargo:
cargo install flutter_rust_bridge_codegen --version 2.0.0-dev.37
- Install using Cargo:
- Flutter SDK 3.19.0+
- Be sure that the
flutter
command is available globally asflutter_rust_bridge_codegen
needs it
This is especially important when using Flutter SDK managers likeasdf
orfvm
- Be sure that the
- Optional: For building the documentation mdBook and some extensions for mdBook are needed
- Install using Cargo:
cargo install mdbook mdbook-mermaid mdbook-admonish
- Install using Cargo:
For all tools, we support the latest versions.
Please note: This method expects global fvm and Dart installs to be available.
- Install
just
(See here) - Run
just
from the root folder of the repository
Please note: Run all commands from the root folder of the repository, unless mentioned otherwise.
- Run
flutter gen-l10n
- Run
flutter_rust_bridge_codegen generate
:- Note: Make sure to re-run this command if you changed anything in the Rust subproject
- Run
flutter run
or use your IDE to run the application- Note: This will automatically build the Rust subproject before building the Flutter project, so no need to worry about that!
Some additional notes:
- If you have changed any code in the Dart or Rust project that could change the generated bridging code, you should re-run the
flutter_rust_bridge_codegen generate
orjust gen-bridge
command- You can also run
flutter_rust_bridge_codegen generate --watch
orjust watch-bridge
to automatically regenerate the bridging code when you save a file
- You can also run
- If you have changed any code related to JSON or TOML serialization, or MobX, you should re-run the
dart run build_runner build --delete-conflicting-outputs
orjust gen-code
command- You can also run
dart run build_runner watch --delete-conflicting-outputs
orjust watch-code
to automatically regenerate the code when you save a file
- You can also run
- If you have changed any code related to the localization, you should re-run the
flutter gen-l10n
ofjust gen-l10n
command
- Make sure to have the Template extension installed
- Right click the
views
folder in VS Code Explorer - Click Template: Create New (with rename), pick the
view
template - Pick a name, enter it in
{snake_case}_screen
format (e.g.settings_screen
oremail_photo_screen
), press Enter - Your new view should be available!