#demo #3d #obj #audio #gui

aloe-ex-demorunner

A sophisticated Rust library designed for executing and rendering demos including 3D, audio, and GUI components using Wavefront OBJ files, real-time audio visualization, and advanced graphical interfaces. This crate is a translation of the c++ juce module serving the same function.

1 unstable release

Uses new Rust 2024

new 0.1.1 Apr 3, 2025

#24 in #obj


Used in 2 crates

GPL-3.0 license

4MB
36K SLoC

Aloe Ex Demorunner

A sophisticated Rust library, aloe-ex-demorunner, designed for advanced users interested in executing and rendering various demos including 3D, audio, and GUI components. The crate encapsulates a rich set of types, each provided with specific functionalities suited for demonstration and visualization purposes using Wavefront OBJ files, 3D graphics rendering, and audio visualization.

Key Features

  • Wavefront OBJ File Support: Classes like WavefrontObjFile parse and manage 3D model data.
  • Audio Processing: Components such as LiveScrollingAudioDisplay interact with audio inputs, providing real-time waveform visualization.
  • Rich GUI Renderings: The MainAppWindow and TabbedComponent provide infrastructural support for rendering demos and interfacing with system graphical environments.
  • System Tray Interaction: Integrates system-specific functionalities through DemoTaskbarComponent.

Getting Started

To utilize this crate, import aloe-ex-demorunner within your Rust project manifest. Ensure your environment is set up with necessary dependencies and compilers for GUI and multi-platform support.

// In your main.rs
extern crate aloe_ex_demorunner;
use aloe_ex_demorunner::*;

Sample Usage

let mut wavefront_obj = WavefrontObjFile::default();
wavefront_obj.load_from_file("path/to/model.obj").unwrap();
// Usage continues with the application demo components...

Modules Overview

Demo Rendering

  • MainComponent and DemoContentComponent are for managing demo states and rendering.
  • IntroScreen and SidePanel provide the UI interface.

Audio and Visual

  • LiveScrollingAudioDisplay manages real-time audio processing.

File Parsing

  • WavefrontObjFile for parsing 3D models with associated materials and geometries.

Authors

Developed by klebs (tpk3.mx@gmail.com).

License

Licensed under GPL-3.0, see LICENSE for more information.

Disclaimer: This README file was generated by an AI model and may not be 100% accurate; however, it should be pretty informative and useful.

This crate is a translation of the JUCE module.

JUCE is a c++ software framework for developing high performance audio applications.

Usage falls under the GPLv3 as well as the JUCE commercial license.

See github.com/juce-framework/JUCE and the JUCE license page for details.

This crate is in the process of being translated from c++ to rust. For progress updates, please see the workspacer rust project. designed specifically for rust projects.

Dependencies

~41–55MB
~830K SLoC