TNoodle is a collection of speedcubing-related projects, primarily written in Java. In particular, it contains the official WCA scramble program.
The official scramble program for the World Cube Association has been part of the TNoodle project since January 1, 2013. It will contain the sole official scramble program for the foreseeable future.
All WCA official competitions must always use the current version of the official scramble program. This is available from https://www.worldcubeassociation.org/regulations/scrambles/
Note that only the scramble program part of TNoodle is "official". Other TNoodle projects may be convenient for certain uses (including at official competitions), but do not have any official status.
Officially, TNoodle-WCA
is a scramble program, while a scrambler is a human. It is fine to refer to TNoodle as a "scrambler" colloquially, but please try to use the official convention wherever possible.
tmt
(TNoodleMakeTools) is a python script used to develop TNoodle.
Get a high level view of all the projects that comprise tnoodle by running:
./tmt graph --descriptions
When you're ready to develop, run the following and then visit http://localhost:2014/scramble/
./tmt make run -p wca
To build a distributable/executable .jar
file, run:
./tmt make dist -p wca
You can run the .jar
from the commandline using:
java -jar wca/dist/TNoodle-WCA.jar
Important note: You must never use a custom build for any official competitions. Contact the WCA Board and the WRC if you have any questions about this.
First make sure that ./tmt make
works. This will involve installing the
android sdk and setting up an ANDROID_HOME environment variable.
- Bump the version number in
bower.json
. ./tmt release
- Each project is a full fledged Eclipse project (they each have a
.classpath
and.project
file). Furthermore, the whole tnoodle directory can be opened as an Eclipse workspace. Simply go to File > Import > Existing Projects into Workspace, and enter your tnoodle directory under "Select root directory". Eclipse should automagically detect all the tnoodle projects. tmt
is designed to be efficient about recompiling subprojects. It relies upon timestamps of files to only recompile something when it's strictly necessary. If you use an editor like Vim that writes to .swp files at potentially anytime alongside your source code, this will trick tmt into thinking something needs to be recompiled when it really doesn't. My recommendation is to configure your editor to store all these files in a unified directory that is not part of your tnoodle source tree.