Source Code

PhET is an open source project, which has benefited from the contributions of other open source projects. It is important to our mission to make our source code publicly available.

However, PhET does not engage in licensing our source code to commercial entities. Commercial partners interested in licensing our simulations should see our Partnership page.

Developing your own custom simulation

We have seen small test projects, academic projects (e.g. education research for a PhD), or open source curriculum projects successfully develop custom simulations, leveraging our code base. It requires expertise in design and in javascript/typescript. As a reference point, a moderately complex PhET simulation requires 160 hours of design, 500+ hours of software development, and 40 hours of testing.

For larger or commercial projects, we strongly discourage groups from copying/forking our code and using the PhET code base, for the following reasons and considerations:

  • Complexity of simulation development:We find that new developers take 6-12 months to gain expertise with the PhET code base and effectively develop a well-structured, performant, and high quality simulation. In addition, an HTML simulation needs to run across a variety of devices and browsers, requiring 60+ hours of quality assurance testing to route out and address bugs.
  • Evolution of the PhET code base:The PhET code base is a work-in-progress, with constant evolution and improvement. We work directly on our master copy. At any time, master can become unstable or buggy. If you branch master, you may be branching a version that has a bug. In addition we do not announce breaking API changes, nor publish change logs for our codebase. You will not be able to cherry pick fixes into forked code.
  • Cost of maintaining the simulation code:PhET simulations are updated on a regular basis to remain compatible with all operating systems and browsers. Any forked code will quickly become stale, incompatible with future versions and will not have future bug fixes that are made to PhET’s master codebase. Anyone using forked code is responsible for code maintenance.
  • GPL licensing requirements when customizing existing PhET simulations:Any customization made to PhET simulations will need to comply with licensing requirements. Most of PhET’s simulation-specific repositories are licensed under GPL, requiring any modified simulations to also be licensed under GPL.

We have developed our PhET-iO simulations to accommodate the needs of commercial education companies for customization of PhET simulations, API integration, and access to backend data. For more information, visit our PhET-iO website.

We do not provide technical support beyond the documentation below or formal partnership opportunities to groups developing their own simulations. Simulations developed from the PhET code base will not carry the PhET logo or name, but are instead required to use an “Adapted from PhET” label.

Developing a new PhET simulation

If you have significant funding for a new simulation (around $100,000) and are agreeable with an open license, please request a meeting with our partnerships team to find out more about the process for developing new PhET simulations.

HTML5 Source Code

Since 2013, PhET sims have been developed in HTML5. The PhET HTML5 and Javascript source code lives on the PhET GitHub page. For instructions on getting your machine set up to develop simulations using the PhET libraries, please see the PhET Development Overview

Java/Flash/Flex Source Code (Legacy)

Our project no longer supports any legacy Java, Flash, or Flex source code. This source code lives in a Subversion repository. For instructions on how to browse the source code online or checkout the Subversion repository refer to our Legacy Java/Flash/Flex Source Code Document.