Pixeling is an experiment in pixel streaming that connects Rhino / Grasshopper to the Unreal Engine. This project has been developed by a team of collaborators for the 2021 AEC Tech Hackathon hosted by CORE Studio at Thornton Tomasetti.
- Edwin Bailey
- Alfredo Chavez
- Jeanne Li
- Eesha Khanna
- Brad Lei
- Daniel Escobar
- Amit Nambiar
- Sergey Pigach
- Jeroen Janssen
The Unreal Project is deployed on a remote instance of AWS, enabling Pixel Streaming through the browser for multiple participants to call into the model vis, from any device!.
There's a few steps to go through to set this up:
- Create an AWS account with proper permissions and quota to launch the correct instances, etc., etc.
We noticed it works best with at least a
g4dn.xlarge
, but if you need more performance you might want to beef it up to ag4dn.8xlarge
type. Make sure the EBS volume is large enough. Unreal Engine is big... We used a 150 Gb General Purpose SSD volume which works well. - Launch the machine with Windows Server 2019
- Make sure on the security rules for the instance to open port 80 (we have 9999 open as well) for incoming traffic
- Set up an Elastic IP address and take note of the
Public IPv4 address
. - The NVIDIA gaming drivers are not installed by default... Follow these steps otherwise Unreal Engine won't run: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html#nvidia-gaming-driver
- Install Unreal Engine (at least v4.27.1)
- Install Node.js including the additional required packages - which will install a bunch of different stuff such as Python and Chocolatey
- https://github.com/aws-samples/deploying-unreal-engine-pixel-streaming-server-on-ec2
- https://docs.unrealengine.com/4.26/en-US/SharingAndReleasing/PixelStreaming/PixelStreamingIntro/
- Make sure you go through these steps carefully. For section 2 - Start the Servers for us that SignallingWebserver was actually saved under:
C:\Program Files\Epic Games\UE_4.27\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd
and instead of running therun.bat
file, on the AWS instance you want to run therunAWS_WithTURN.bat
file. - This will spin up the Signalling Server and you'll see the following in the console window:
WebSocket listening to Streamer connections on :8888
WebSocket listening to Players connections on :80
Http listening on : 80
-
And you're good to go! Now you can start the Packaged Unreal Engine application with your project loaded (the amended shortcut to the .exe file - see the details in the link in step 8)
-
On the AWS instance you can now browse to http://127.0.0.1 to see the model in your local browser (on the remote instance that is).
-
And the rest of the world can now access the
Elastic IP address
you set up in step 4! Hooray!