Importing Assets During Runtime (Pixel Streaming + AWS + Arcware SDK)

I’d like to share my current workflow and get your suggestions, advice, or possible improvements to make it more efficient.

I’m currently developing a custom Unreal Engine application that runs through Pixel Streaming, allowing me to use it across several streaming providers.

My main goal is to import 3D models (FBX, GLB, GLTF) and textures dynamically at runtime, even when the application is being streamed remotely (not running locally).


What I’m Doing Locally

When working on my local machine, I can import FBX or GLB/GLTF models during runtime using the plugins glTFRuntime and glTFRuntimeFBX, both available on GitHub:

These plugins work great when the files are on my local system, allowing me to import them into Unreal during gameplay without issues.


The Challenge (When Using Pixel Streaming)

The issue appears when my Unreal project is running on a remote Pixel Streaming server.
Since the project isn’t running locally, I can’t directly access local files anymore.

So, I’m working on a method to upload models or textures from the frontend of my web application, and then import them into Unreal Engine during runtime using temporary URLs.


My Current Approach

  • I’m using the Arcware Web SDK to communicate between my web frontend and the Unreal application through Pixel Streaming.

  • The web app includes an iframe that runs the streamed Unreal application.

  • On the frontend, I’ve created a small control panel with buttons that trigger events.

When I press these buttons:

  1. The frontend uploads a model (FBX/GLB) or texture to an Amazon S3 bucket.

  2. The file is stored temporarily, and I get a temporary URL (using pre-signed URLs).

  3. That URL is sent to the Unreal application via Arcware SDK communication.

  4. Inside Unreal, I use Blueprint nodes that download and import the asset using that URL (for example, downloading a texture or model from the web at runtime).

This way, I’m trying to dynamically import assets inside Unreal Engine while the app is streamed.


What I’d Like Feedback On

I’d really appreciate suggestions on:

  • Whether this workflow makes sense or could be improved.

  • If there’s a more efficient or standardized way to import runtime assets in a Pixel Streaming setup.

  • Any recommended alternatives to using AWS S3 for temporary storage (to simplify or optimize the process).

  • Potential performance or security concerns I might be missing.

Frontend (Web)
↓ upload
AWS S3 (temporary storage)
↓ send URL
Pixel Streaming (Arcware SDK)
↓ receive and load
Unreal Engine (Runtime import via Blueprints)

Thanks a lot for reading and for any feedback or insights you can share!
I hope this also helps others working on similar remote asset-import workflows.