{"id":40310011,"url":"https://github.com/phetsims/decaf","last_synced_at":"2026-01-20T06:31:42.807Z","repository":{"id":150737411,"uuid":"251696622","full_name":"phetsims/decaf","owner":"phetsims","description":"PhET Java Simulations converted to HTML5 using CheerpJ","archived":false,"fork":false,"pushed_at":"2025-10-07T18:51:31.000Z","size":105877,"stargazers_count":1,"open_issues_count":76,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-10-07T20:42:40.179Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phetsims.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-31T18:32:22.000Z","updated_at":"2025-10-07T18:51:36.000Z","dependencies_parsed_at":"2024-04-11T00:25:40.920Z","dependency_job_id":"e5de4051-d99b-4dfe-a71e-c0cf3cf4398a","html_url":"https://github.com/phetsims/decaf","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/phetsims/decaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phetsims%2Fdecaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phetsims%2Fdecaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phetsims%2Fdecaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phetsims%2Fdecaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phetsims","download_url":"https://codeload.github.com/phetsims/decaf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phetsims%2Fdecaf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28597628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-20T06:31:42.755Z","updated_at":"2026-01-20T06:31:42.802Z","avatar_url":"https://github.com/phetsims.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Decaf\n\nPhET maintains support for Java simulations through a commercial product called CheerpJ, which allows Java code to run\nin an HTML5 page. This document outlines the process for building and deploying Java simulations.\n\n## Install CheerpJ\n\n1. This process has been tested with CheerpJ 2.1\n\n## Set up SVN repo for Java development:\n\n1. Download and install jdk1.7.0_80.jdk from Oracle\n2. Check out the SVN truck branch named \"decaf\" (can be done in-place on an existing checkout).\n    ```\n    svn checkout https://phet.unfuddle.com/svn/phet_svn/branches/decaf ~/phet-svn-trunk-2020\n    ```\n3. Compile the phet java BuildScript *.class files.\n\n```\ncd build-tools/\nchmod u+x ./contrib/apache-ant/bin/ant\n```\n\n4. Target the installed JDK by setting the `JAVA_HOME` env variable\n\n```\nexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/\n./build.sh\n```\n\n5. At this point a PhET Build GUI will launch and can be closed.\n\nThese instructions assume cheerpjfy python script is located in `/Applications/cheerpj/cheerpjfy.py`. This instruction\nset also assumes your `localhost` is running.\n\n## Set up build-local.json\n\nIn `.phet/build-local.json` you will need to add these entries:\n\n```\n\"gitRoot\":\"/path/to/git/root\",\n\"decafTrunkPath\": \"path/to/trunk\",\n\"decafTrunkOutputPath\": \"path/to/trunk/output\",\n\"urlRoot\": \"localHostURL\"\n```\n\n## Set up to run PhET Build GUI\n\nFor the following commands, use --debug if something is wrong\n\n## Build\n\n```\ncd perennial\ngrunt build-decaf --project={{PROJECT}}\n```\n\nTest the build artifact from the url in the console.\n\nNote: The first time the Build steps are run on macOS, you will need to grant security access for CheerpJ and some of\nits utilities ( opt, llc, etc.). This can be done by going to Security and Privacy settings and allowing access from the\nprompt under \"Allow apps downloaded from: \".\n\n## Deploy dev (outputs a script to deploy production)\n\nThe deploy step requires VPN.\n\n```\ncd ../decaf\ngit add *\ngit commit -m \"Update version\"\ngit push\ncd ../perennial\ngrunt deploy-decaf --project={{PROJECT}} --dev --production\n```\n\n## Deploy production\n\nUsing your personal login credentials, run the script from the previous command, outputted\nafter `SERVER SCRIPT TO PROMOTE DEV VERSION TO PRODUCTION VERSION`\nTest launching the sim from the sim page.\n\n## Batch build and deploy\n\ncd perennial ./bin/decaf-build-and-deploy.sh {{PROJECT}}\n\n## Deploying new translations\n\n```\ncd ~/phet-svn-trunk-2020\nsvn info\nsvn switch ^/trunk\nsvn update\nsvn switch https://phet.unfuddle.com/svn/phet_svn/branches/decaf .\nsvn status\nsvn merge ^/trunk\n```\n\nReview and commit changes.\n\n```\nsvn commit\n```\n\nIf credentials are needed use: ``` svn commit --username --password```\n\nDeploy following above instructions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphetsims%2Fdecaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphetsims%2Fdecaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphetsims%2Fdecaf/lists"}