Creating Dynamic Teaching Content in Amazon Sumerian

By Yuval Schaal and Ido Michael | Posted November 11, 2019


In this project, you’ll learn how to create custom and interactive presentations using Amazon Sumerian. You’ll learn how to turn any lectures or presentations from a PDF file into a 3D Sumerian scene presented by a Sumerian Host. You’ll work with many AWS services such as Amazon S3, AWS CloudFormation, AWS Identity and Access Management (IAM), and AWS Lambda.

This framework will take a PDF (that contains slides with notes) that’s uploaded to Amazon S3 and update a Sumerian scene with the presentation. The Host will then read the notes in tandem with the slide deck presentation. You’ll also set up an Amazon Lex bot that will be connected to your scene and allow the host to answer questions from users.

Once you have completed this exercise and set up your Sumerian scene, you can swap out presentations in just a few minutes by simply uploading a new PDF to Amazon S3.

This is the scene we will be building today.

We’ll walk you through setting up your AWS environment to interact with Sumerian, and customize the content by uploading a presentation file.

In this article you’ll learn about:

  • AWS configuration
  • Amazon Cognito identity pool ID
  • AWS CloudFormation
  • Amazon S3
  • Speech component
  • Hosts

Prerequisites

Step 1: Deploy the AWS CloudFormation Template

Instead of going through the AWS Management Console and creating Amazon S3 buckets, AWS Lambda functions, and Amazon Cognito user pools click by click, we can use AWS CloudFormation to deploy the infrastructure quickly and easily.

AWS CloudFormation templates that are stored in an Amazon S3 bucket must be accessible to the user who is creating the stack, and must be located in the same AWS Region as the stack that is being created. Therefore, if the Amazon S3 bucket is located in the US East (N. Virginia) Region, the stack must also be created in the same AWS Region.

Note: This step will deploy a public S3 bucket in your AWS account (called “preprocessingbucket”).

  1. Make sure to download the AWS CloudFormation stack created for this exercise.

  2. Open the AWS CloudFormation console. Be sure you are in the US East (N. Virginia) Region.

  3. If this is a new AWS CloudFormation account, choose Create New Stack. Otherwise, choose Create Stack.

  4. In the Template section, choose Upload a template file, choose the template file from your local repository, and then choose Next.

    Create-Template

  5. Continue choosing Next until the last step. You also need to name the stack. We’ll call it “Sumerian-Stack”.

  6. On the last step, acknowledge IAM resource creation, and then choose Create Stack.

  7. Choose the Events tab. Wait until the stack status reads CREATE_COMPLETE (it should take a few minutes).

    Create-Complete

  8. Choose the Outputs tab to see the deployed resources we’re going to use. Later in this tutorial, we will copy some of these values.

Outputs-Tab

Now you have created the destination for your data (Amazon S3) and a function to handle the load (AWS Lambda).

architecture-diagram

Step 2: Create an IAM Access Key and Secret Key

In this step, we set up the Sumerian reference points that will allow Sumerian to connect to the different services. The first step is to create an IAM access key and secret key. Sumerian needs to use those credentials to communicate with some of the other services.

  1. Navigate to the IAM console.

  2. In the navigation pane on the left, choose Users, and then choose the SumerianIAMUser user name.

    Users-tab

  3. On the Security Credentials tab, navigate to the Access keys section.

  4. Choose Create access key.

    create-credentials

  5. Choose Download .csv file to save the access key ID and secret access key to a .csv file on your computer.

    Store the file in a secure location. You won’t have access to the secret access key again after this dialog box closes.

  6. After you download the .csv file, choose Close.

Step 3: Add the Role to the Cognito Identity Pool

Now we need to attach the role that was created in AWS CloudFormation to give Amazon Cognito the correct permissions to operate with Amazon Polly, Amazon Lex, and Sumerian.

  1. Navigate to the Amazon Cognito console.

  2. Choose Manage Identity Pools.