AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit) is a suite of tools to streamline content creation at scale for autonomous vehicle and robotics simulation applications.

Overview

AWS Ambit Scenario Designer for Unreal Engine 4

Welcome to AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit), a suite of tools to streamline 3D content creation at scale for autonomous vehicle and robotics simulation applications. From procedural placement of obstacles to automatic generation of whole cities, Ambit can help you quickly create the 3D environments and scenarios you need for your simulations or other 3D applications.

Ambit sample image

Review the User Guide to learn about Ambit's capabilities and how to start using Ambit with your projects.

If you're interested in contributing to Ambit's development or would like to customize Ambit's functionality to suite your team's needs be sure to read the "Appendix: Contributing to Ambit Development" section of the User Guide.

Ambit is implemented as a plugin for Unreal Engine and has been tested for compatibility with Unreal Engine 4.27.

Repository Contents

📂 Ambit/                      ~ Source code for the Ambit UE4 plug-in
📂 docs/                       ~ Source for Ambit documentation
📂 HoudiniDigitalAssets/       ~ Compiled HDAs for use with Ambit
📄 CONTRIBUTING.md             ~ Guidelines for contributing to this project
📄 LICENSE                     ~ This project's licensing terms
📄 NOTICE.md                   ~ Relevant copyright notices
📄 THIRD_PARTY_LICENSES.md     ~ Licenses for 3rd party assets used in this project
📄 user-guide-buildspec.yml    ~ AWS CodeBuild configuration used to build the User Guide
Comments
  • Update screenshots in user guide with latest UI

    Update screenshots in user guide with latest UI

    What was the problem/requirement? (What/Why)

    The user doc contained certain UI images that were older and didn't include newer functionality.

    What was the solution? (How)

    Relevant screenshots have been updated in the user guide to match the latest UI. Changes have been made to the text to include any new information.

    What artifacts are related to this change?

    Issues: (internal) P54511997

    What is the impact of this change?

    Any users referring to the user guide will be provided with the latest information.

    Are you adding any new dependencies to the system?

    No.

    How were these changes tested?

    Locally, using the standard procedure to view changes to the user doc.


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by rukekre 5
  • Separate integration tests from unit tests

    Separate integration tests from unit tests

    What was the problem/requirement? (What/Why)

    Currently, the build pipeline isn't set up to be properly licensed to successfully run the Houdini tests. In the meantime, we'd like some way of running the unit test suite from the command line without these.

    What was the solution? (How)

    The naming structure of the tests have changed to more explicitly move all tests under "Ambit.Unit" while the Houdini tests live under "Ambit.Integration". The "AmbitUtils" tests have moved to "Ambit.Unit.Utils".

    When running the tests from the command line, Unreal only does forward string matching - passing in "Ambit" would run all of the tests (both organized under Unit and Integration), while "Ambit.Unit" would run all of the unit tests without running Ambit.Integration.

    I didn't want to explicitly list all the tests that should be run, as developers adding new unit tests would have to remember to add them to the pipeline. There is no concept of a negative filter - I can't tell it 'run all tests that match this string, but not these specific tests."

    Similarly, the only filter that can be used from the command line is represented by the flags that fall under the FilterMask -- Smoke, Engine, Product, Perf, Stress, and Negative. All Ambit tests are marked as Product tests by default, which is IMO the right place for them - there's no separate category that really suits the integration tests.

    What artifacts are related to this change?

    Issues: Ambit-10

    What is the impact of this change?

    Developers running tests will notice that they are organized under a new structure, and will have to expand one more node to view class-specific tests. Otherwise it is just as simple to run all of the Ambit tests.

    Are you adding any new dependencies to the system?

    None

    How were these changes tested?

    • Visually checked organization of tests in the Editor
    • Ran just the unit tests from the command line, looked at output to ensure Houdini tests did not run: .\RunUAT.bat BuildCookRun -project="D:\UnrealProjects\ambitdemo\ambit-demo\AmbitDemo.uproject" -unattended -clean -build -package -nullrhi -nosound -run -editortest "-RunAutomationTest=Ambit.Unit"

    How does this commit make you feel? (Optional, but encouraged)

    Fairly ambivalent


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by JuliaABurch 2
  • Add ReSharper settings file to the repository

    Add ReSharper settings file to the repository

    What was the problem/requirement? (What/Why)

    To make the ReSharper settings file available to all contributors of the Ambit plugin.

    What was the solution? (How)

    Added the ReSharper settings file and a relevant README with the installation and usage instructions.

    What artifacts are related to this change?

    Issues: P56990807

    What is the impact of this change?

    N/A

    Are you adding any new dependencies to the system?

    No

    How were these changes tested?

    Locally


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by rukekre 2
  • Unable to use Houdini features on new install

    Unable to use Houdini features on new install

    I have UE4.27.1 installed from the Epic store. I followed the getting started guide successfully, including installing Houdini, the Houidini license, copying the Houdini plugin, copying the AWSAmbit.hda file(to C:\Users[username]\Documents\houdini19.0\otls\AWSAmbit.hda), and installing the GLTF Exporter.

    I'm trying to use the Building/Road generator. I exported an OSM of downtown seattle from OpenStreetMaps. I imported this into the Ambit generators(I tried each one). The Houdini actors show 'Houdini Engine Session Ready'

    The Houdini cook finishes almost immediately but I see no output. Checking the 'Show Cook Log', I see output like this: Am I missing a step?

    Cook Results:
    Cook succeeded.
    
    Cook State:
    Ready
    
    
    ===================================
    Node Errors, Warnings, and Messages
    ===================================
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/gen_bldg_shapes:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/apartment_panels/building_generator_utility1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/apartment_panels/building_generator_utility2:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/apartment_panels/building_generator_utility3:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/apartment_panels/building_generator_utility4:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/apartment_panels/building_generator_utility5:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/building_generator1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_apartment2/visualize_uvs1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/geo_panels/building_generator_utility1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/geo_panels/building_generator_utility5:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/geo_panels/building_generator_utility6:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/geo_panels/building_generator_utility7:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/geo_panels/building_generator_utility8:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/building_generator1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/ambit_bld_gen_commercial1/visualize_uvs1:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/osm_import:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/filter_buildings:
    Warning:     This node is using an incomplete asset definition. It will not
                 function properly until the asset library containing the full
                 definition is installed.
    
    /obj/AmbitBuildingGenerator/AmbitBuildingGenerator1/attribdelete1/attribute1:
    Warning:     Invalid attribute specification: "no match for *".
                 Invalid attribute specification: "no match for *".
                 Invalid attribute specification: "no match for *".
                 Invalid attribute specification: "no match for *".
    
    
    bug 
    opened by prestomation 2
  • Replace with Amazon box

    Replace with Amazon box

    What was the problem/requirement? (What/Why)

    We would like to replace the old box actor with a new one with Amazon-style.

    What was the solution? (How)

    • Removed the old box and its textures and materials.
    • Created the new box Blueprint Actor and attached its textures to the materials

    What artifacts are related to this change?

    • Issue ID: P55910906

    What is the impact of this change? (Focus on the customer experience)

    After this change, customers are able to use the box with Amazon-style.

    Are you adding any new dependencies to the system?

    N/A

    How were these changes tested?

    • Passed all Automation tests
    • Manually test the collision

    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by haozhao-aws 2
  • Expand and organize User Guide

    Expand and organize User Guide

    What was the problem/requirement? (What/Why)

    Improve the User Guide by filling documentation gaps and improving doc organization.

    Out of scope

    • Grammar, spelling, and cleanliness improvements to existing User Guide pages.

    What was the solution? (How)

    • Added documentation for City Generation tools.
    • Migrated setup instructions from README to User Guide.
    • Split out the setup instructions for packaged Ambit plugin users and the setup instructions for developers wishing to compile from source.
    • Improved setup instructions.
    • Improved TOC.

    What artifacts are related to this change?

    • Issue IDs: internal P53521754, P54511899

    What is the impact of this change? (Focus on the customer experience)

    • Customers using the packaged Ambit plugin now have setup instructions catered to them.
    • Customers wishing to compile Ambit from source now have setup instructions catered to them.
    • Customers can now learn how to use the City Generation tools.

    Are you adding any new dependencies to the system?

    No

    How were these changes tested?

    Manually tested by running the mkdocs serve command and viewing the generated User Guide in a browser.

    How to review/test

    I recommend reviewers also use the approach above and review the generated docs in the browser so that formatting and images can be reviewed as the user will see them.

    Key files

    The following are NEW doc pages or pages that had significant changes. Review these with special scrutiny...

    • README.md
    • User Guide:
      • appendix-contributing.md
      • building-generator.md
      • city-generation.md
      • obtaining-osm.md
      • road-generator.md
      • setup.md

    How does this commit make you feel? (Optional, but encouraged)

    I'm passionate about good user documentation. Happy to be insisting on the highest standards for our docs.

    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by kris-work 2
  • Add

    Add "Feature Overview" section to User Guide

    What was the problem/requirement? (What/Why)

    The User Guide lacked a quick general overview of Ambit's features.

    What was the solution? (How)

    Added a "Feature Overview" section. Linked to it from the "Welcome" section.

    What artifacts are related to this change?

    Issues: P54511866

    What is the impact of this change?

    Users new to Ambit will now be able to quickly get a sense of what it offers.

    Are you adding any new dependencies to the system?

    No

    How were these changes tested?

    The docs site was previewed locally using the mkdocs serve command detailed in the User Guide readme.

    How does this commit make you feel? (Optional, but encouraged)

    I feel like an important onboarding hurdle for new users has been removed.


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by kris-work 1
  • Add unit tests for export functionality

    Add unit tests for export functionality

    What was the problem/requirement? (What/Why)

    Unit tests for export map and export gltf functionality were missing.

    What was the solution? (How)

    Added unit tests for these features.

    What artifacts are related to this change?

    Issues: P52848900

    What is the impact of this change?

    Expands unit tests to cover more features.

    Are you adding any new dependencies to the system?

    No.

    How were these changes tested?

    Locally, following the established unit test procedure.

    How does this commit make you feel? (Optional, but encouraged)

    :)


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by rukekre 1
  • Remove HoudiniDigitalAssets folder from README

    Remove HoudiniDigitalAssets folder from README

    What was the problem/requirement? (What/Why)

    README mentioned the HoudiniDigitalAssets folder which has been previously removed.

    What was the solution? (How)

    Removed the mention from the README

    What artifacts are related to this change?

    Issues: N/A

    What is the impact of this change?

    Up-to-date README

    Are you adding any new dependencies to the system?

    No

    How were these changes tested?

    N/A


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by rukekre 1
  • Some OpenStreetMap files cause AmbitBuildingGenerator and AmbitRoadGenerator to fail

    Some OpenStreetMap files cause AmbitBuildingGenerator and AmbitRoadGenerator to fail

    Some OSM files fail to cook properly when used with AmbitBuildingGenerator or AmbitRoadGenerator. The cook fails with an error message similar to the following:

    Error
    Invalid source /obj/test_fail/osm_import1/read_in_map_data
    Error: Python error: Traceback (most recent call last):
    File "<stdin>", line 328, in <module>
    File "<stdin>", line 283, in parse
    File "D:\Houdini19\python37\lib\xml\etree\ElementTree.py", line 1224, in iterator
    data = source.read(16 * 1024)
    File "D:/Houdini19/python37\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 8596: character maps to <undefined>
    

    This is a known issue that the AWS Ambit team is working to address. We don't yet know the conditions that cause the failure to occur, but we've noticed the issue happens frequently with OSM exports of the downtown Seattle area. A sample OSM file which causes these errors is attached.

    We will update this issue as we learn more.

    map.osm.txt

    bug 
    opened by kris-work 1
  • Update Information to Allow Publishing into UE Marketplace

    Update Information to Allow Publishing into UE Marketplace

    What was the problem/requirement? (What/Why)

    • Update all header information to include current year (2022)
    • Add in Marketplace URL
    • Added in "WhitelistPlatforms" to each Module
    • Update the minor version, which will need to repackage after this change
    • Add in Config/* to the output package
    • Minor: Update the DotSettings to include current year in header

    What was the solution? (How)

    Epic has specified that we need to make a few changes before we can publish. These are:

    • .uplugin has "MarketplaceURL" key with a value that includes the product's Offer ID -- Fail -- For this product the value is "com.epicgames.launcher://ue/marketplace/product/cb1034a325c94e52b3ed08f6eb9ae4a0"
    • All source and header files contain a commented copyright notice with Publisher name and year of publishing -- Fail -- All code files must have the intended year of publication in the copyright comment.
    • FilterPlugin.ini filters in custom folders the publisher intends to distribute (Docs or similar) -- Fail -- The FilterPlugin.ini needs to list all folders or files that are outside the expected file structure and are intended to be included.

    What is the impact of this change?

    This should have no usability impact

    Are you adding any new dependencies to the system?

    N/A

    How were these changes tested?

    Packaged through Editor and manually to verify it was successful


    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by brhook-aws 0
Releases(v1.0.1)
Owner
AWS Samples
AWS Samples
Best practices, conventions, and tricks for ROS. Do you want to become a robotics master? Then consider graduating or working at the Robotics Systems Lab at ETH in Zürich!

ROS Best Practices, Conventions and Tricks Best practices for ROS2 in the making. See the Foxy branch in the meanwhile. This is a loose collection of

Robotic Systems Lab - Legged Robotics at ETH Zürich 1.2k Dec 1, 2022
The FLIP Fluids addon is a tool that helps you set up, run, and render high quality liquid fluid effects all within Blender, the free and open source 3D creation suite.

FLIP Fluids The FLIP Fluids addon is a tool that helps you set up, run, and render liquid simulation effects. Our custom built fluid engine is based a

Ryan Guy 1.4k Nov 29, 2022
Decentralized architecture for loss tolerant semi-autonomous robotics

gestalt-arch Decentralized architecture for loss tolerant semi-autonomous robotics Objective We demonstrate a decentralized robot control architecture

null 4 Dec 18, 2021
Blender is the free and open source 3D creation suite

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender 7.2k Nov 30, 2022
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research

Welcome to AirSim AirSim is a simulator for drones, cars and more, built on Unreal Engine (we now also have an experimental Unity release). It is open

Microsoft 13.7k Nov 25, 2022
Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS)

A multi-language, cross-platform library that enables different simulators to easily exchange data and stay synchronized in time. Scalable from two si

GMLC-TDC 83 Oct 14, 2022
A ROS based Open Source Simulation Environment for Robotics Beginners

A ROS based Open Source Simulation Environment for Robotics Beginners

Sulegeyixiu 126 Nov 13, 2022
An embedded CAN bus sniffer which is able to monitor any of the vehicle internal CAN bus and perform some action by triggering new CAN messages.

An embedded CAN bus sniffer which is able to monitor any of the vehicle internal CAN bus and perform some action by triggering new CAN messages. In this way certain vehicle functionality can be triggered by responding to custom steering wheel button events, or use the vehicle virtual cockpit to display OBD-PIDs values instead of relying on an external display to present new information to the user

null 17 Nov 28, 2022
Fluid simulation engine for computer graphics applications

Fluid Engine Dev - Jet Jet framework is a fluid simulation engine SDK for computer graphics applications that was created by Doyub Kim as part of the

Doyub Kim 1.5k Nov 30, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.

N.A.G.E.K.I. A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control. 中文版

NanaNana 37 Nov 18, 2022
A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Using Pro-micro control.

N.A.G.E.K.I. PLEASE CHECK Main Project A cheap,simple,Ongeki controller Use Keyboard Simulation and Mouse Simulation to controller the ongeki game. Us

NanaNana 11 Dec 30, 2021
A PIC/FLIP fluid simulation based on the methods found in Robert Bridson's "Fluid Simulation for Computer Graphics"

GridFluidSim3d This program is an implementation of a PIC/FLIP liquid fluid simulation written in C++11 based on methods described in Robert Bridson's

Ryan Guy 728 Dec 1, 2022
Draw a triangle inside Electron's window using DirectX 11, mixing web and native content.

Draw a triangle inside Electron's window using DirectX 11, mixing web and native content. Limitations The native content is rendered over a child wind

UKABUER 9 Jul 12, 2022
This is a compilation of the code and images for all Arduino code in the Robotics 11 class.

Robotics 11 - Arduino This is a compilation of the code and images for all Arduino code in the Robotics 11 class. All code can be viewed in each proje

GuhBean 1 Oct 29, 2021
This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robotics and Perception Group (RPG).

rpg_svo_pro This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robot

Robotics and Perception Group 1k Nov 29, 2022
Dynamic Animation and Robotics Toolkit

Build Status Item Status Build Status API Documentation Coverage Static Analysis Resources Visit the DART website for more information Gallery Install

DART: Dynamic Animation and Robotics Toolkit 757 Nov 30, 2022
Suckless-tools - My fork of suckless tools.

suckless-tools Here is my fork of suckless tools. I didn't include tabbed, i was using but not actively. I am using xfce4-terminal instead of st. Beca

null 2 Jan 7, 2022
The Vulkan Profiles Tools are a collection of tools delivered with the Vulkan SDK for Vulkan application developers to leverage Vulkan Profiles while developing a Vulkan application

Copyright © 2021-2022 LunarG, Inc. Vulkan Profiles Tools (BETA) The Vulkan Profiles Tools are a collection of tools delivered with the Vulkan SDK for

The Khronos Group 70 Nov 17, 2022
Clip - Cross-platform C++ library to copy/paste clipboard content

Clip Library Copyright (c) 2015-2021 David Capello Library to copy/retrieve content to/from the clipboard/pasteboard. Features Available features on W

Aseprite 15 Jun 18, 2022