bevy_light_field

Crates.iobevy_light_field
lib.rsbevy_light_field
version0.8.0
sourcesrc
created_at2024-03-07 23:54:31.868606
updated_at2024-03-18 05:22:18.741945
descriptionrust bevy light field array tooling
homepagehttps://github.com/mosure/bevy_light_field
repositoryhttps://github.com/mosure/bevy_light_field
max_upload_size
id1166377
size265,548
Mitchell Mosure (mosure)

documentation

README

bevy_light_field πŸ’‘πŸŒΎπŸ“·

test GitHub License crates.io

rust bevy light field camera array tooling

capabilities

  • grid view of light field camera array

  • stream to files with recording controls

  • person segmentation post-process (batch across streams)

  • async segmentation model inference

  • foreground extraction post-process and visualization mode

  • recording session viewer

  • camera array calibration (extrinsics, intrinsics, color)

  • camera position visualization

  • 3d reconstruction dataset preparation

  • real-time 3d reconstruction viewer

run the viewer

cargo run -- --help

the viewer opens a window and displays the light field camera array, with post-process options

see execution provider bevy_ort documentation for better performance

  • windows: cargo run --release --features "ort/cuda"

controls

  • r to start recording

  • s to stop recording

  • esc to exit

  • arrow left/right to change frames in offline viewer

  • UI controls

library usage

use bevy::prelude::*;

use bevy_light_field::{
    LightFieldPlugin,
    stream::RtspStreamHandle,
};

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            LightFieldPlugin {
                stream_config: "assets/streams.json",
            },
        ))
        .add_systems(Startup, setup_ui_gridview)
        .run();
}

fn setup_ui_gridview(
    mut commands: Commands,
    input_streams: Query<(
        Entity,
        &RtspStreamHandle,
    )>,
) {
    let stream = input_streams.single().unwrap();

    commands.spawn(ImageBundle {
        style: Style {
            width: Val::Percent(100.0),
            height: Val::Percent(100.0),
            ..default()
        },
        image: UiImage::new(stream.image.clone()),
        ..default()
    });

    commands.spawn((
        Camera2dBundle {
            ..default()
        },
    ));
}

light field camera array

view the onshape model

  • parts list

Alt text

compatible bevy versions

bevy_light_field bevy
0.1.0 0.13

credits

license

This software is dual-licensed under the MIT License and the GNU General Public License version 3 (GPL-3.0).

You may choose to use this software under the terms of the MIT License OR the GNU General Public License version 3 (GPL-3.0), except as stipulated below:

The use of the yolo_v8 feature within this software is specifically governed by the GNU General Public License version 3 (GPL-3.0). By using the yolo_v8 feature, you agree to comply with the terms and conditions of the GPL-3.0.

For more details on the licenses, please refer to the LICENSE.MIT and LICENSE.GPL-3.0 files included with this software.

Commit count: 53

cargo fmt