Skip to main content

PyPI version fury.io PyPI pyversions Linux macOS Downloads Downloads PyPI license

Master Unit Tests: Master

Development Unit Tests: Development

Publish Documentation: Publish Docs

Publish to PyPI: Publish PyPI

MCS Python Package

Python interface for interacting with MCS AI2Thor environment and running scenes. The latest release of the MCS Python library is 0.7.4. You can find the latest documentation here.

Quickstart Installation

Virtual Environments

Python virtual environments are recommended when using the Machine Common Sense package. All steps below presume the activation of the virtual environment. The developer can choose between traditional Python or Anaconda depending on need. These instructions work for Ubuntu Linux or MacOS. The MCS package has a minimum requirement of Python 3.7 regardless of Python distribution. As of 0.4.4, the MCS package will automatically download the Unity app release for that version. On the first run, the Unity app may take a while to start in order to download all the assets.

Traditional Python Environment

$ python3.7 -m venv --prompt mcs venv
$ source venv/bin/activate
(venv) $ python -m pip install --upgrade pip setuptools wheel

Alternate Anaconda Environment

For developers using Anaconda Python distributions instead of traditional Python, create your project virtual environment from the base Anaconda environment.

(base) $ conda create -n myenv python=3.8
(base) $ conda env list
# conda environments:
#
base                  *  /home/user/anaconda3
myenv                    /home/user/anaconda3/envs/myenv
(base) $ conda activate myenv
(myenv) $

Install MCS

With the activated Python virtual environment, install the MCS package from the git url.

(venv) $ python -m pip install machine-common-sense

Sample MCS Config File

There may be additional settings you want to specify, which can be accomplished via the MCS configuration file. You can use the sample_config.ini file to start. This file has the metadata level set to oracle, which ensures that the data for all objects in a scene is returned, as well as object masks. For the purposes of this guide, we will pass this along to the MCS controller via the config_file_or_dict, which is outlined in the Usage example below.

For more in-depth information on configuration files and more about the different properties within, see the documentation about the MCS configuration file

Usage

Example usage of the MCS library:

import machine_common_sense as mcs

# Unity app file will be downloaded automatically
controller = mcs.create_controller(config_file_or_dict='./some-path/sample_config.ini')

# Either load the scene data dict from an MCS scene config JSON file or create your own.
# We will give you the training scene config JSON files and the format to make your own.
scene_data = mcs.load_scene_json_file(scene_json_file_path)

output = controller.start_scene(scene_data)

# Use your machine learning algorithm to select your next action based on the scene
# output (goal, actions, images, metadata, etc.) from your previous action.
action, params = select_action(output)

# Continue to select actions until your algorithm decides to stop.
while action != '':
    controller.step(action, params)
    action, params = select_action(output)

# For interaction-based goals, your series of selected actions will be scored.
# For observation-based goals, you will pass a classification and a confidence
# to the end_scene function here.
controller.end_scene()

Documentation

Other MCS GitHub Repositories

Troubleshooting

mcs-ta2@machinecommonsense.com

Acknowledgements

This material is based upon work supported by the Defense Advanced Research Projects Agency (DARPA) and Naval Information Warfare Center, Pacific (NIWC Pacific) under Contract No. N6600119C4030. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the DARPA or NIWC Pacific.

Apache 2 Open Source License

Code in this repository is made available by CACI (formerly Next Century Corporation) under the Apache 2 Open Source License. You may freely download, use, and modify, in whole or in part, the source code or release packages. Any restrictions or attribution requirements are spelled out in the license file. For more information about the Apache license, please visit the The Apache Software Foundation’s License FAQ.

Copyright 2021 CACI (formerly Next Century Corporation)

Metadata

Release files for machine-common-sense 0.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for machine-common-sense 0.7.4
File Size Uploaded Provenance Actions
machine_common_sense-0.7.4.tar.gz 126.0 kB Without provenance Details for machine_common_sense-0.7.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for machine-common-sense 0.7.4
File Interpreter ABI Platform Actions
machine_common_sense-0.7.4-py3-none-any.whl Python 3 none any Details for machine_common_sense-0.7.4-py3-none-any.whl

Total release size: 280.0 kB

Release files / machine_common_sense-0.7.4.tar.gz

Download URL machine_common_sense-0.7.4.tar.gz
Size 126.0 kB
Tags Source
SHA-256 checksum
How to use checksums
94dd4554eb4f7eb7d43c55d310980c663a3d59a422a01e042f3b4a9fc864bfc8
BLAKE2b-256 checksum
How to use checksums
79185aee70254a68c2d0b6ee6cdda96090d2230f1c1d50b41463532c906c445b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / machine_common_sense-0.7.4-py3-none-any.whl

Download URL machine_common_sense-0.7.4-py3-none-any.whl
Size 153.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d0ddd037fdbc1926388734d0d87c00aa2df5f48d0ef74cb1dbf8bab265cb129
BLAKE2b-256 checksum
How to use checksums
ddba767da1baf7f05d51fda2cba795eca10a899483a99c0059e11ba0e203e8fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.7

Security for machine-common-sense 0.7.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page