mirror of
https://github.com/storytold/storyteller-bevy.git
synced 2026-10-18 07:35:19 +00:00
5f62a4024b8b1f87ba01435b731dd86dd252b0d9
StudioMode switch for full-editor capabilities (#23)
This PR adds a `StudioMode` resource to toggle editing capabilities, and configures the frontend application to read the desired mode from a URL parameter. For now, setting the app to `StudioMode::Viewer` with `<app-url>?mode=viewer` hides the Transform Toolbar and disables most of the interactive features of the app, but otherwise exhibits the same behavior as `StudioMode::Editor` / `<app-url>?mode=studio`. In the future, the "Viewer" and "Editor" modes will receive different initialization inputs to better serve the needs of their use cases. In particular: * The "Viewer" mode will accept a BVH animation handle, which should be played in a loop on a simple mannequin asset, allowing a user to preview a given animation before using it within the full studio workflow. * The "Editor" mode will accept a full Bevy scene handle which can be edited and saved to the user's account. These scenes will serve as the basis for the generative-AI workflows Storyteller Studio is ultimately seeking to facilitate. * It will likely be useful for "Editor" mode to alternatively accept only a BVH animation handle, which would be used to initialize a new scene for editing similar to "Viewer" mode, but with editing capabilities enabled.
Storyteller Studio
Installing dependencies
- Install Rust
- Install Node.js LTS
- Run
npm ci
Building / Running / Testing stuff
This repo is managed by Nx, a polyglot build system and monorepo framework written in TypeScript. After installing dependencies, dev tasks can be run through the Nx CLI:
npx nx <command> <project> [options]
# OR
npx nx run <project>:<command> [options]
For example, to compile the Bevy app to WebAssembly and serve it via the web frontend project, run:
npx nx serve studio-frontend
Projects are located in directories at the workspace root. The list of commands
supported by a given project can be found under the target property of its
project.json file, which defines the Nx configuration for that project.
The full list of options for a given command can be discovered by passing the
--help flag:
npx nx <command> <project> --help
Description
Languages
Rust
59.2%
TypeScript
34.9%
SCSS
4.1%
JavaScript
1%
HTML
0.3%
Other
0.5%