Synthesis is a robotics simulator designed by and for FIRST® robotics students to help teams design, strategize, test and practice. Teams have the ability to import their own robots and fields using our Fusion Exporter or use the pre-made ones available within Synthesis.
For more information on the product itself or the team, visit http://synthesis.autodesk.com.
Synthesis is built with a direct focus on the FIRST® community. Every single one of our developers is a FIRST® student. We've also made the project completely open source in order to better involve the community. This way contributors can help make Synthesis better or modify Synthesis to better suit their team’s needs.
Here are some of our primary goals for Synthesis:
If you are a FIRST robotics student who just wants to use Synthesis, you don't need this repo. Simply install the latest release of Synthesis from synthesis.autodesk.com/download.
[!IMPORTANT] Moving to synthesis.autodesk.com.
If you're a developer who wants to contribute to Synthesis, you're in the right place. Synthesis is comprised of 3 main components that can be developed separately. These components include:
Follow the above links to the respective READMEs on how to build and run each component.
As Fusion is not officially supported on Linux, we do not provide an installer for the Fusion Exporter on Linux.
This project welcomes community suggestions and contributions. Synthesis is nearly 100% open source and relies on the FIRST® community to help make it better. The Synthesis Contribution Guide suggests ways in which you can get involved through development and non-development avenues.
Before you contribute to this repository, please first discuss the change you wish to make via a GitHub issue, email us (frc@autodesk.com), or reach out through our community discord. This way we can ensure that there is no overlap between outside contributors and internal development work.
When ready to contribute, fork the synthesis repository, make your changes, and submit a pull request. Be sure to fill out the template accordingly to make reviewing your work as smooth as possible. Feel free to check out our contributing guidelines to learn more.
All code is under a configured formatting utility. See each component for more details.
Mirabuf is a file format we use to store physical data from Fusion to load into the Synthesis simulator (Fission). This is a separate project that is a submodule of Synthesis. See Mirabuf
Jolt is the core physics engine for our web biased simulator. See JoltPhysics.js for more information.
Our source code for the tutorials featured on our Tutorials Page.
Additional protobuf files that we use in addition to Mirabuf. See Protocols
We have a variety of tutorials available to help you get started with Synthesis. These tutorials can be found on our Tutorials Page on our website. Additionally, you can view these same tutorials as Markdown files in the tutorials directory of this repository.
Updating our tutorials is a ongoing process. If you are at all interested in helping, checkout the Synthesis Contribution Guide for more information on how to get started.
Annually, since 2014, Autodesk has sponsored the Synthesis Immersion Program for FIRST robotics students to develop Synthesis. The immersion program is a 10 week paid work experience at the Portland, Oregon Autodesk office from June 20th to August 25th. The immersion program focuses on not only developing Synthesis, but also allowing for opportunities to meet and collaborate with other Autodesk employees. For more information about the immersion program, visit our website at synthesis.autodesk.com/internship.
If you're a FIRST robotics student who wants to be a part of the Synthesis development team here is some basic information about applying.
Applicants must be:
Applications open each year during the spring. For more information about applying, exceptions to these requirements or for more info about specific positions offered, please visit the Synthesis Immersion Program website.
If you have any questions about Synthesis or the Immersion Program, you can contact us through email (frc@autodesk.com). Additionally please reach out through our community discord. It's the best way to get in touch with not only the community, but Synthesis' current development team.
Copyright (c) Autodesk
SPDX-License-Identifier: Apache-2.0