Commit Graph

152 Commits

Author SHA1 Message Date
Brooks Palin 355d30f59a Stopping for now 2024-03-18 16:43:36 -06:00
Brooks Palin 2934c66d53 stopping for now 2024-03-14 19:57:27 -06:00
Brooks Palin 1ef2afc685 Added the ability to spawn a mannequin 2024-03-12 15:26:04 -06:00
Brooks Palin ffba0b940f Merge branch 'add-stuff-to-scene' into apply_animations 2024-03-12 00:42:46 -06:00
Brooks Palin 5e16a1197d [BREAKING] BVH now loads into AnimationClips 2024-03-12 00:41:53 -06:00
Brandon Thomas 7d5c490874 CORS - add allowed frame ancestors for development 2024-03-10 05:13:48 -04:00
Brandon Thomas 9837363783 cleanup removal of iframe origin checks 2024-03-09 13:26:08 -05:00
Brandon Thomas a958cc8283 remove origin checks - these might be the final CORS blockers 2024-03-09 13:10:08 -05:00
Brandon Thomas b36ee00d73 frame-ancestors 2024-03-09 04:14:32 -05:00
Brandon Thomas 241c5cc25c toml cors attempt 2 (#85) 2024-03-09 03:36:04 -05:00
Brandon Thomas 676b9f86a8 add netlify toml for CORS (#84) 2024-03-09 03:06:09 -05:00
Brandon Thomas 005b4fdba3 debug cors with logging (#83) 2024-03-09 02:45:48 -05:00
Brandon Thomas 26bbec58ec cargo target documentation 2024-03-09 02:34:55 -05:00
Danny McGee f07ac0c099 Replace calls to crypto.randomUUID 2024-03-08 19:58:20 -05:00
Danny McGee 9dfbcae134 Hotfix: Replace calls to crypto.randomUUID (#82)
`crypto.randomUUID` is only available in secure contexts (HTTPS), which
throws an error when trying to run in certain situations/browsers.
2024-03-08 19:56:19 -05:00
Brandon Thomas 33250e4627 fix CORS for certain hostnames (#81) 2024-03-08 18:34:33 -05:00
Danny McGee f347ac783f WIP Media Library dialog 2024-03-08 17:40:11 -05:00
Danny McGee 0642c1c370 Fix overlay issues 2024-03-08 17:39:13 -05:00
Danny McGee e046e408b3 More endpoints 2024-03-08 17:37:07 -05:00
Danny McGee 30979fec96 Fix issues with framework decorators (#79)
This PR fixes issues with several of the decorator implementations in
`framework` and adds unit tests to specify and validate their
functionality.
2024-03-07 21:44:55 -05:00
Danny McGee 096e143d0a Move super call 2024-03-07 21:37:19 -05:00
Danny McGee 78c2d0b294 session, media_files/list endpoints 2024-03-07 21:33:16 -05:00
Danny McGee fc022b1b3a Catch DOMException when accessing parent origin (#80) 2024-03-07 20:58:00 -05:00
Danny McGee 9b34a82323 Simple API wrapper 2024-03-07 19:26:01 -05:00
Danny McGee 326424347f Move "Add to Scene" menu to studio-web 2024-03-07 14:58:32 -05:00
Danny McGee 0856caf0e0 Clean up trigger event handling 2024-03-07 14:47:23 -05:00
rewin 550a92eec1 Inspect for StandartMaterial (#76)
Allow to render StandartMaterial color and change in uniform way as
another components


![image](https://github.com/storytold/storyteller-bevy/assets/10954133/bf2fc91a-642e-40b6-99d3-a18c06dc156a)



![image](https://github.com/storytold/storyteller-bevy/assets/10954133/8534b82d-ed55-4714-8888-257db50c5e0f)
2024-03-07 21:03:42 +03:00
Danny McGee 890ac13c2d Fix build errors 2024-03-06 21:56:45 -05:00
Danny McGee 1ef112c232 Document URL params and app startup workflow (#77) 2024-03-06 21:38:11 -05:00
Danny McGee 7138320ac0 Cleanup 2024-03-06 21:37:40 -05:00
Danny McGee a2c4c9eaac Respect the autoClose property 2024-03-06 21:31:34 -05:00
Danny McGee 976e446f93 Formatting 2024-03-06 21:25:51 -05:00
Danny McGee 4a47b58f6e Create "Add to Scene" menu 2024-03-06 21:19:28 -05:00
Danny McGee 183fab1d73 Low-hanging optimizations for CI pipelines (#75)
This PR attempts to avoid bankrupting the company by running 15 minutes
of unit tests on unchanged code or re-downloading
`@fortawesome/fontawesome-pro` 5 times for every PR commit.
2024-03-05 18:43:51 -05:00
Brooks Palin 9aaf15287a Scaling Gizmo (#72)
This PR adds the Scaling Gizmo to the StoryTeller Engine.

Features
- Objects can now be scaled by Axis or Plane

Limitations
- Currently there is no implementation for combining the scale gizmo
with any of the other gizmo. This should be amended with further PRs.

Let me know if there is anything that I missed!

---------

Co-authored-by: Danny McGee <dannymcgee@gmail.com>
2024-03-05 16:16:01 -07:00
Danny McGee 970f5b25bd Communication bridge to storyteller-frontend (#74)
This PR establishes a rudimentary communication protocol between
Storyteller Studio and the parent application (at fakeyou.com /
storyteller.ai) via the `Window.postMessage` API. An example of how this
protocol can be used from the parent application is here:
https://github.com/storytold/storyteller-frontend/commit/d36e2a9e5c162233d7bd194fdbaa26199bbf6f7a
2024-03-05 18:04:41 -05:00
rewin add1e79fea Logic for inspector field muts (#73)
Allow to send change events from typescript to bevy

Example (test)
```rust
CHANGE_FROM_UI.write_message(UpdateField {
    component: "bevy_transform::components::transform::Transform".to_string(),
    reflect_path: ".translation.x".to_string(),
    value: 0.to_string(),
});
```

Function for typescript
```rust
#[wasm_bindgen(js_name = changeValue)]
pub fn change_value(msg: String) {
    let Ok(msg) = serde_json::from_str::<UpdateField>(&msg) else {
        error!("Failed to parse message: {}", msg);
        return;
    };
    CHANGE_FROM_UI.write_message(msg);
}

```
2024-03-05 22:28:46 +03:00
Danny McGee c9904a5293 Inspector frontend UI (#68)
This PR begins fleshing out the front-end UI for inspecting the selected
entity's components.

### Implemented
* Support for the `Name` component
* Placeholder/WIP support for the `Transform` component

### To-do
* Support for sending changes made in the inspector back to Bevy
* A slider/field combo widget for numeric values (can be adapted from
  [this StackBlitz](https://stackblitz.com/edit/angular-wfikuy?file=src%2Ffloat-input%2Ffloat-input.component.ts))
* Quat -> Euler angles conversion ([example math here](https://github.com/dannymcgee/3DGameMath/blob/5cb7a8ff9310565329e57751cd8b9c33e9bd4cb7/libs/Math/include/math/quat.inl.hpp#L56-L78),
  or use a 3rd-party math library)

### Known issues
* Selecting entities from the hierarchy doesn't always update the
  components list. I suspect this is the same issue as #39
2024-03-04 15:13:03 -05:00
Danny McGee 9875ea7cca Progress bar for scene loading (#71) 2024-03-04 14:39:48 -05:00
rewin 3a27f3b881 Blocking buttons (#69)
![image](https://github.com/storytold/storyteller-bevy/assets/10954133/6c963b6c-6551-4379-854e-9f3f57cb173d)

---------

Co-authored-by: Danny McGee <dannymcgee@gmail.com>
2024-03-04 21:33:44 +03:00
Danny McGee 1f2bd9a6ae Fix pipeline fails (#70)
* Removes some unused imports causing linter to fail
* Removes a redundant `InitAsset` variant that was accidentally included
  in #57
2024-03-01 20:30:05 -05:00
Brooks Palin e79a7d4f4c Orbit Options (#67) 2024-03-01 00:51:12 -05:00
Brooks Palin 5cb23f0607 Headless mode Orbit (#66) 2024-03-01 00:20:32 -05:00
Brooks Palin a2b2946678 Headless Mode fixes for the Backend (#65)
This PR brings some fixes that are needed for the backend to render
scenes.
2024-02-29 21:47:42 -07:00
Danny McGee 3413810773 Small batch of misc enhancements (#64)
This PR cherry-picks some improvements from #63 that are general-purpose
and not specifically related to IK.

* Some logic has been added to `AppElement` to track the currently
  selected Scene Element
* `disabled` property has been added to `ButtonElement`, with custom
  styling and accessibility features
* Tagging entities with their `SceneElement` type has been made more
  robust and reliable (previously, it was possible for all entities to
  appear in the hierarchy as "Generic" elements depending on the order of
  system execution)

Additionally:

* Forces the Netlify CI pipeline to always used the latest stable Rust
  version
2024-02-29 15:42:49 -05:00
rewin ae88696213 Inspector: component view part (#55)
This PR allow to send entity components data to typescript with
inspector-dom event

Event data

![image](https://github.com/storytold/storyteller-bevy/assets/10954133/f4b5a88e-0a8d-4d56-ade2-d0102a6c08f7)

Component register example

![image](https://github.com/storytold/storyteller-bevy/assets/10954133/f9480f0a-a657-4445-a0d4-0984e2f69900)

Read event example

![image](https://github.com/storytold/storyteller-bevy/assets/10954133/2b6480f0-d1fb-42f1-bd6e-dfbc3d4676a2)


This PR is the first step of new inspector backend logic
Next parts is:
- Allow to edit components fields 
- Allow to show asset data (like show Handle<StandartMaterial> data)
- Allow to edit asset fields
2024-02-29 23:17:51 +03:00
Danny McGee f31cf35da1 More Image Generator stuff (#59)
YOLO
2024-02-28 15:52:01 -05:00
Brandon Thomas 04ecc78059 fix ci script for demo (#62) 2024-02-28 15:50:12 -05:00
Danny McGee 61fa16bdba Expose skeletal joints to frontend hierarchy (#56)
This PR exposes skeletal joint entities to the frontend hierarchy,
allowing the user to pose rigged models by selecting the joints and
transforming them.

Additionally, entity-type information (e.g., Mesh, Skeleton, Bone,
Light, etc.) has been added to the data structure passed to the
frontend, which is rendered with icons in the tree view.
2024-02-28 15:47:26 -05:00
Brandon Thomas f938255426 CI build script for image gen demo (#61) 2024-02-28 15:39:38 -05:00