Skip to content

Autodesk/synthesis

Repository files navigation

Synthesis: An Autodesk Technology Synthesis: An Autodesk Technology


GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status

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.

Goals

Synthesis is built with a direct focus on the FIRST® community. Every single one of our developers is or was a FIRST® student. We've also made the project completely open source in order to better involve the community. This way contributors can help improve Synthesis broadly or adapt it to their team’s needs.

Here are some of our primary goals for Synthesis:

  • Ease of Use: It's important for us that Synthesis is out of the box ready for teams to use. We want to make sure that teams can get up and running with Synthesis as quickly as possible. To that end, Synthesis comes ready with a variety of robots and fields in addition to the ability to export and import your own.
  • Testing Robot Designs: Synthesis is designed to be a tool for teams to quickly test their robot designs in a semi-realistic environment. Are you a builder who wants to use some crazy virtual four-bar linkage and your team says it's a waste of time? Well now you can prove them wrong by testing it in Synthesis!
  • Exploring the Field Environment: Every year on kickoff, for both FTC and FRC FIRST® competitions, Synthesis has the newest field available immediately. This allows teams to explore the field through a 3D model, drive a robot around, and begin to strategize for the upcoming season's game.
  • Driver Practice & Strategy: Not getting enough driver practice or don't have a full field available to you? Synthesis has you covered with the ability to play full simulated matches, controlling your robot with a gamepad from a first-person view at the driver station. This allows you to get a feel for potential control scheme layouts and any line-of-sight challenges that may arise. This also allows the drive team and the programmers to communicate about what control layouts work best for each driver.

Getting Started

If you are a FIRST robotics student who just wants to use Synthesis, you don't need this repo. Simply go follow this link to the simulator and start spawning in robots!

If you're a developer who wants to contribute to Synthesis, you're in the right place. Synthesis is comprised of 2 main components that can be developed separately:

Follow the above links to the respective READMEs on how to build, run, and test each component.

Note

As Fusion is not officially supported on Linux, we do not provide an installer for the Fusion Exporter on Linux.

Contributing

See CONTRIBUTING.md for information on how you can help build synthesis

Other Components

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.

Jolt is the core physics engine for our web-based simulator.

Protocols

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. Additionally, you can view these same tutorials as Markdown files in the tutorials directory of this repository.

Updating our tutorials is an ongoing process. If you are at all interested in helping, check out 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 16th to August 22nd. The immersion program focuses on not only developing Synthesis, but also allowing for opportunities to meet and collaborate with other Autodesk employees.

Want To Be A Part Of The Team?

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 at least 16 years of age (at the start of the internship)
  • Have been a member of a FIRST Robotics team for at least one full season

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 Synthesis Immersion Program.

Contact

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