2 stable releases
|1.1.1||Jul 13, 2022|
|1.0.0||Apr 3, 2018|
#72 in Games
Draws images into the game Passpartout: The Starving Artist.
This application has one of two main operating modes:
Image Drawing Mode: takes an input image and draws it to the easel in-game.
Shape Drawing Mode: takes a list of coordinates and draws that shape in-game.
On Linux, you may need to install the libxdo development libraries.
apt install libxdo-dev
dnf install libxdo-devel
Downloading and Compiling
The easiest way to get passpartout_printer installed is to use
cargo install passpartout_printer
If you have a need to build from source, you can build it as follows:
git clone https://github.com/ostrosco/passpartout_printer.git cd passpartout_printer cargo build --release
Before the application can draw to the easel in-game, a configuration file needs to be created with the screen coordinates of in-game elements. To do this:
- Start Passpartout.
- Select Endless Mode in the main menu. Pick any of the unlocked scenarios.
- Click on the easel to bring up the drawing interface.
cargo run --release -- --configureto start the configuration process.
A prompt will appear in the console to walk through the elements to click to configure the program. Upon completion, a "coords.json" file will be created in the top-level directory.
- It's better to click on the white part of the easel than along the edge. If a click is too far off the easel, some line draws starting or ending near the edges will fail.
- Try to click on the direct center of the colors.
Passpartout Printer 1.1.0 USAGE: passpartout_printer [FLAGS] [OPTIONS] FLAGS: --configure Configures the application with coordinates in-game. --enable-dither Enables dithering to reduce color banding but increase draw time -h, --help Prints help information --no-scale Disable scaling of the input image. -V, --version Prints version information OPTIONS: -i, --image <IMAGE> Input image to use -w, --mouse-wait <WAIT> Specify the time to wait between mouse actions
Pressing Left Control + Space will pause or resume printing.
Deciding on a Wait Time
The speed in which passpartout_printer can draw to the easel is limited by the frame rate in-game. The default wait time between mouse operations is 7ms which assumes a frame rate of around 142 FPS. To measure your in-game frame rate, ensure that the Steam overlay is enabled and that the In-Game FPS Counter is enabled. Initial observations have shown that the FPS can drop between 5% to 15% when drawing, so it's best to go a little slower than the max FPS. Wait times of 5ms or less seem to cause severe input errors regardless of FPS.
Dithering can greatly improve the image quality at a significant performance tradeoff by reducing color banding. Expect dithering to increase the draw time by 2 to 4 times depending on the complexity of the input image.
|Without Dithering||With Dithering|
|Draw Time: 1 hour at 7ms wait time||Draw Time: 3.5 hours at 7ms wait time|
There are examples in the project that demonstrate the Shape Drawing Mode of the application. To run them:
cargo run --release --example draw_house
Graffiti - Artist Unknown. Dithering disabled. 1 hour draw time at 6ms wait.
Lotus Pond - Jessica T. Hamilton. Dithering enabled. 2 hour 45 minute draw time at 6ms wait.
Mona Lisa - Leonardo da Vinci. Dithering enabled. 3 hour 30 minute draw time at 7ms wait.