osci-render/README.md

111 wiersze
4.4 KiB
Markdown
Czysty Zwykły widok Historia

2021-05-02 22:19:47 +00:00
<p align="center">
2021-05-02 22:44:10 +00:00
<img width="267" height="256" src="osci.png" />
2021-05-02 22:19:47 +00:00
</p>
Program for drawing objects, text, and images on an oscilloscope using audio output.
2020-01-22 23:33:22 +00:00
2020-11-22 13:29:29 +00:00
This allows for 3D rendering of `.obj` files, `.svg` images, and `.txt` files.
2020-02-11 22:28:00 +00:00
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.
2020-02-16 17:52:28 +00:00
2020-10-18 20:47:41 +00:00
### Video Demonstration
2020-05-08 19:43:19 +00:00
2020-10-18 20:47:41 +00:00
[![osci-render demonstration](https://img.youtube.com/vi/oEX0mnv6PLM/0.jpg)](https://www.youtube.com/watch?v=oEX0mnv6PLM)
2020-06-23 20:06:09 +00:00
2020-10-18 20:47:41 +00:00
## Current Features
- Render `.obj` files on an oscilloscope
2020-11-08 22:27:37 +00:00
- Render `.svg` files
2020-11-22 13:29:29 +00:00
- Render text
2020-10-18 20:47:41 +00:00
- Rotation of objects
- Scaling images
- Translating images
- Applying image effects
2020-10-18 20:47:41 +00:00
## Proposed Features
- Tune and transpose audio output
2020-10-18 20:47:41 +00:00
- Support rendering of multiple objects
- Saving pre-rendered frames to file for later loading
- Saving audio output to file
2020-10-18 20:47:41 +00:00
- (long term) Keyframing/animating objects and camera
## Usage
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.
2020-10-18 20:47:41 +00:00
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!
2020-10-18 20:47:41 +00:00
2020-12-04 21:50:29 +00:00
Control the output using the sliders and text boxes provided. Currently the following can be controlled:
2020-10-18 20:47:41 +00:00
- Translation and speed of translation of the output
- Weight of the lines drawn
- Rotation speed
- Scale of the image
2020-10-18 20:47:41 +00:00
There are some additional controls for `.obj` files:
2020-10-18 20:47:41 +00:00
- Focal length of camera
- Position of camera
2020-10-18 20:47:41 +00:00
## Screenshots
<img width="250px" height="396px" src="gui.png">
## 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!
2020-10-18 20:47:41 +00:00
## Building
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 😊
2020-10-18 20:47:41 +00:00
## Contact
James Ball, [james@ball.sh](mailto:james@ball.sh)
2020-06-23 20:06:09 +00:00
## Special Thanks
2020-10-18 20:47:41 +00:00
2020-11-08 22:27:37 +00:00
IC Hack 20 Team Members: [James Ball](https://github.com/jameshball), [William Grant](https://github.com/wdhg), [Jessica Lally](https://github.com/jessicalally), [Noor Sawhney](https://github.com/noor-gate), and [Andy Wang](https://github.com/cbeuw)