From 773e0a3faf069e4614a431256ea92a61972106ac Mon Sep 17 00:00:00 2001 From: James H Ball Date: Mon, 10 May 2021 21:41:14 +0100 Subject: [PATCH 1/2] Add image of v1.1.1 GUI --- gui.png | Bin 0 -> 28835 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 gui.png diff --git a/gui.png b/gui.png new file mode 100644 index 0000000000000000000000000000000000000000..2fda0e2829c1c3f5730298b2c57469b34b9ca0f1 GIT binary patch literal 28835 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 NU)8;W)wmP-KLGPWV>JK( literal 0 HcmV?d00001 From 3335a2f46cdfeae66f0d40dfb92523c011002612 Mon Sep 17 00:00:00 2001 From: James H Ball Date: Mon, 10 May 2021 21:48:46 +0100 Subject: [PATCH 2/2] Update README with screenshot of GUI, updated build, and running info --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3658cca..8fee907 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Program for drawing objects, text, and images on an oscilloscope using audio out This allows for 3D rendering of `.obj` files, `.svg` images, and `.txt` files. -Lots of this code was built as part of a 24hr hackathon: IC Hack 20. The original repository can be found here: https://github.com/wdhg/ICHack20 It won 'Best Newcomers Prize' at the event. +Some of this was built as part of a 24hr hackathon: IC Hack 20. The original repository can be found here: https://github.com/wdhg/ICHack20 It won 'Best Newcomers Prize' at the event. ### Video Demonstration @@ -18,9 +18,9 @@ Lots of this code was built as part of a 24hr hackathon: IC Hack 20. The origina - Render `.svg` files - Render text - Rotation of objects -- Scaling image -- Translating image -- GUI for controlling renderer +- Scaling images +- Translating images +- Applying image effects ## Proposed Features @@ -34,7 +34,7 @@ Lots of this code was built as part of a 24hr hackathon: IC Hack 20. The origina Using osci-render is very easy; run the program and choose the file you would like to render, and it will output as audio to visualise on your oscilloscope. -By default, the program loads the `cube.obj` example. If this is working, you're good to go and should be able to load your own objects, files, or images! +By default, the program loads the example rotating cube. If this is working, you're good to go and should be able to load your own objects, files, or images! Control the output using the sliders and text boxes provided. Currently the following can be controlled: @@ -48,9 +48,58 @@ There are some additional controls for `.obj` files: - Focal length of camera - Position of camera +## Screenshots + + + +## Running + +Head over to [Releases](https://github.com/jameshball/osci-render/releases) and download the latest `.exe` or `.jar`. + +`.exe` is highly recommended if you're on Windows as it is much simpler to get up and running. + +### Running using .exe + +- Download the latest `osci-render-VERSION.exe` from [Releases](https://github.com/jameshball/osci-render/releases) +- Open the `.exe` skipping any Windows security warnings (at your own risk!) +- It should open briefly and then close without any user input +- Check your start menu for `osci-render` or open `osci-render.exe` at `C:\Program Files\osci-render` +- Start rendering! + +Updating to later versions is as simple as running the latest `osci-render-VERSION.exe` again. + +To uninstall, use Windows control panel, as you would expect. + +### Running using .jar + +- Download the latest `osci-render-VERSION.jar` from [Releases](https://github.com/jameshball/osci-render/releases) +- Download and install [Java 15 or later](https://www.oracle.com/java/technologies/javase-jdk16-downloads.html) +- Donwload and unpack [JavaFX 16 or later](https://gluonhq.com/products/javafx/) + - Make sure you scroll down to `Latest Release` + - Download the SDK for your platform + - Unpack the `.zip` at your root directory (e.g. `C:\javafx-sdk-16` for me on Windows) + - The `lib` subfolder should be located at `/javafx-sdk-16/lib` +- Run the following command from your terminal to run the `.jar`, substituting the correct paths +- `java --enable-preview --module-path /javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml -jar "path/to/osci-render-VERSION.jar"` +- Start rendering! + ## Building -All dependencies are specified in the `pom.xml` file. Cloning this repo and using IntelliJ with Maven should make building a painless process. +I am using Maven for dependency management and to package the program. Doing the following will setup the project. I highly recommend using IntelliJ. + +- Download and install [Java 15 or later](https://www.oracle.com/java/technologies/javase-jdk16-downloads.html) +- Run `git clone git@github.com:jameshball/osci-render.git` +- `cd` into the `osci-render` directory +- Run `mvn package` +- Open the project in IntelliJ +- Add `target/modules` as a library + - Right click the folder in IntelliJ and `Add as Library...` + - Select `osci-render` in the `Add to module` dropdown +- Navigate to `File -> Project Structure` +- Remove all external Maven libraries other than the `modules` folder just added +- You're good to go! + +You should now be able to run `sh.ball.gui.Gui` and start the program 😊 ## Contact