MCPcopy Index your code
hub / github.com/TheAliceProject/alice3

github.com/TheAliceProject/alice3 @3.9.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.9.1.0 ↗ · + Follow
32,224 symbols 88,976 edges 4,974 files 3,346 documented · 10% updated 7d ago3.9.1.0 · 2026-04-22★ 17736 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Alice 3

Alice is an innovative block-based programming environment that makes it easy to create animations, build interactive narratives, or program simple games in 3D.

Latest Released Build:

Building Alice 3 from the source

Download and install the following build tools * Java 21 * Set $JAVA_HOME accordingly, and add $JAVA_HOME/bin to your PATH * Apache Maven 3.9.9 or later * git * git-lfs * Install4J 10 (Only required to build the installers)


Clone the Alice 3 repository into a local directory, ${alice3}

cd ${alice3}
git clone --recurse-submodules https://github.com/TheAliceProject/alice3.git

Alice 3 uses a submodule for the Tweedle language, the internal representation of Alice code. If you do not use the --recurse-submodules flag above it can be pulled in explicitly.

git submodule init
git submodule update

To ensure the lfs files are available locally:

git lfs pull

Compile the code, build the jars, and install them in the local mvn repository.

mvn compile install

The install step will also build the NetBeans plugin in {alice3}/netbeans/target/

If you want to use Install4J to build the installers add a flag to use the buildInstaller profile:

mvn -DbuildInstaller=true install

More information about configuring Install4j can be found here

Executing and testing

After successfully compiling and installing the Alice jars into the mvn repository, you can launch the Alice IDE

cd alice-ide
mvn exec:java -Dalice-ide

Run unit tests

cd ${alice3}
mvn test

Installing Git Hooks

The hooks directory contains Git hooks, that should be placed in .git/hooks

Here's an example command to copy the pre-push hook:

cp hooks/pre-push .git/hooks/pre-push

IDE

IntelliJ IDEA is suggested for coding/building Alice 3. There is a free community edition or JetBrains offers a product pack for students using an edu email address here.

Build with IntelliJ

Alice 3 builds with Java 21 which should be installed and selected in place of IntelliJ's bundled JDK.

IntelliJ IDEA has a bundled maven. * The location is set in: * File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven * To build with maven using build project in the IDE first check the "Delegate IDE build/run actions to Maven" option in * File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Runner

Run with IntelliJ

After the project is built successfully. You can create a Run/Debug Configuration and run the project. In the Run/Debug Configurations window, create a new Application configuration and enter lines as bellow. New Application Configuration The working directory should be the root directory where you checked the Alice 3 project out, ${alice3}.

The VM options are:

-ea
-splash:"./installer/installerFiles/SplashScreen.png"
-Xmx1024m
-Dswing.aatext=true
-Dorg.alice.ide.rootDirectory="./core/resources/target/distribution"
-Dcom.apple.mrj.application.apple.menu.about.name=Alice3
-Dedu.cmu.cs.dennisc.java.util.logging.Logger.Level=WARNING
-Dorg.alice.ide.internalTesting=true
-Dorg.lgna.croquet.Element.isIdCheckDesired=true
-Djogamp.gluegen.UseTempJarCache=false
-Dorg.alice.stageide.isCrashDetectionDesired=false
-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED

Then the project should be ready to run.

Final note: If you were delegating IDE build/run actions to Maven in the previous step, please uncheck that option. Or you might run into some graphics errors running Alice.

Working without the Sims*

The compile, package, and install phases can all be limited to not include the Sims assets. To do that disable the includeSims maven profile.

It is a good idea to clean if you have previously made a full build. This may prevent leftover Sims artifacts getting bundled in.

cd ${alice3}
mvn -DincludeSims=false -Dinstall4j.skip clean package

Or:

cd ${alice3}
mvn -DincludeSims=false clean install

*This is still experimental, so there may be errors.

How to contribute

We appreciate contributions from the Alice community.

To make it easier to merge in new work, when submitting PRs please: * Keep each one small and focused * Make individual commits of smaller chunks with clear descriptions * Follow the established coding style

Development tools

This repository previously included a number of projects that were experiments, test beds, and development aids.

They have been relocated to the Alice 3 Tools repo. (NB If you are looking for historic versions of any of those projects, the richer git history is in this repo. The history did not migrate due to the way filter-branch was applied.)

Extension points exported contracts — how you extend this code

DropSite (Interface)
@author Dennis Cosgrove [10 implementers]
core/croquet/src/main/java/org/lgna/croquet/DropSite.java
ResponsibleModel (Interface)
@author Dennis Cosgrove [47 implementers]
core/ide/src/main/java/org/alice/ide/croquet/models/ResponsibleModel.java
Declaration (Interface)
@author Dennis Cosgrove [19 implementers]
core/ast/src/main/java/org/lgna/project/ast/Declaration.java
OnscreenPicturePlaneInformedManipulator (Interface)
@author David Culyba [20 implementers]
core/story-api/src/main/java/org/alice/interact/manipulator/OnscreenPicturePlaneInformedManipulator.java
NodeMigration (Interface)
An individual step in a CompoundMigration. CompoundMigration handles version applicability and updating. NodeMigrations [6 …
core/story-api-migration/src/main/java/org/lgna/project/migration/ast/NodeMigration.java
Observer (Interface)
@author Dennis Cosgrove [7 implementers]
core/scenegraph/src/main/java/edu/cmu/cs/dennisc/render/Observer.java
ForEachRunnable (Interface)
@author Dennis Cosgrove [64 implementers]
core/util/src/main/java/org/lgna/common/ForEachRunnable.java
ForgettableBinding (Interface)
@author alice [12 implementers]
core/glrender/src/main/java/edu/cmu/cs/dennisc/render/gl/ForgettableBinding.java

Core symbols most depended-on inside this repo

getValue
called by 1730
core/util/src/main/java/edu/cmu/cs/dennisc/tree/Node.java
add
called by 1704
core/util/src/main/java/edu/cmu/cs/dennisc/javax/swing/models/MutableListModel.java
append
called by 1420
core/util/src/main/java/org/alice/math/immutable/Matrix3x3.java
createMoreSpecificFieldPattern
called by 962
core/story-api-migration/src/main/java/org/lgna/project/migration/ProjectMigrationManager.java
createMoreSpecificFieldReplacement
called by 959
core/story-api-migration/src/main/java/org/lgna/project/migration/ProjectMigrationManager.java
get
called by 958
core/util/src/main/java/edu/cmu/cs/dennisc/tree/Node.java
put
called by 943
core/util/src/main/java/edu/cmu/cs/dennisc/map/MapToMapToMap.java
setValue
called by 739
core/croquet/src/main/java/org/lgna/croquet/BoundedNumberState.java

Shape

Method 26,300
Class 4,224
Enum 1,269
Interface 431

Languages

Java100%

Modules by API surface

core/croquet/src/main/java/org/lgna/croquet/AbstractComposite.java166 symbols
core/story-api/src/main/java/org/lgna/story/implementation/AbstractTransformableImp.java131 symbols
core/story-api/src/main/java/org/lgna/story/implementation/JointedModelImp.java113 symbols
core/model-loading/src/main/java/org/lgna/story/resourceutilities/ModelResourceExporter.java112 symbols
core/glrender/src/main/java/edu/cmu/cs/dennisc/render/gl/imp/Graphics2D.java106 symbols
core/glrender/src/main/java/edu/cmu/cs/dennisc/render/joglrenderer/NonCachingTextRenderer.java105 symbols
core/ast/src/main/java/org/lgna/project/virtualmachine/VirtualMachine.java100 symbols
core/ide/src/main/java/org/alice/stageide/sceneeditor/StorytellingSceneEditor.java99 symbols
core/story-api/src/main/java/org/alice/interact/DragAdapter.java96 symbols
core/ast/src/main/java/org/lgna/project/ast/SourceCodeGenerator.java96 symbols
core/story-api/src/main/java/org/lgna/ik/core/enforcer/TightPositionalIkEnforcer.java95 symbols
core/model-loading/src/main/java/org/lgna/story/resourceutilities/JointedModelColladaExporter.java89 symbols

For agents

$ claude mcp add alice3 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact