Clone wiki

Circles / Home


Welcome to Circles project!

Circles is a JavaFX application written with GroovyFX that permits to navigate in structural data using circles and labels. It's more a proof of concept and a starting point for more sophisticated JavaFX applications.

Circles screenshot

The application permits to navigate between circles with the mouse and plays animations when switching from a circle to another. So, click on a circle with the left button mouse to focus on it: it will be displayed in the whole application window. And for return to a parent circle, just click on a circle with the right button mouse.

Here a screencast demoing transitions between circles.

In Circles, the structural data is described in a JSON document file that you have to pass as first argument when running the application. Here an example of a such document:

    "radius": 500, "circles": [
        { "text": "Circles", "radius": 80, "circles": [
            { "text": "Groovy", "radius": 20 },
            { "text": "JavaFX", "radius": 34 },
            { "text": "GroovyFX", "radius": 42, "circles": [
                { "text": "odelia", "radius": 30 },
                { "text": "technologies", "radius": 20, "circles": [
                    {"text": "Lorem 1", "radius": 30 },
                    {"text": "Lorem 2", "radius": 20 },
                    {"text": "Lorem 3", "radius": 20 },
                    {"text": "Lorem 4", "radius": 20 },
                    {"text": "Lorem 5", "radius": 20 },
                    {"text": "Lorem 6", "radius": 20 },
                    {"text": "Lorem 7", "radius": 20 },
                    {"text": "Lorem 8", "radius": 20 },
                    {"text": "Lorem 9", "radius": 20 },
                    {"text": "Lorem 10", "radius": 30 }
            ] },
        { "text": "odelia technologies", "radius": 40 }

For circles packing, Circles uses the phyllotactic pattern implemented in Werner Randelshofer's Treeviz Java library. So thanks to him.

Building Circles

Circles is built with Gradle, and the Gradle build.gradle file applies the very good JavaFX Gradle Plugin from Danno Ferrin. So, use gradle assemble in order to assemble the application.

Running Circles

The Gradle script includes the circles task that permits to run Circles with a JSON sample file. Just type:

gradle circles

Otherwise, once Circles is assembled, you can start Circle with a command like this one (on Windows):

java -jar build\distributions\circles.jar json\data.json