Dirk Lemmerman has open sourced FlexGanttFX, a resource-scheduling framework for generating Gantt charts. Lemmerman open sourced the library after 15 years as a way of increasing availability of the code for use while using the AGPL license as a way to address project maintenance.
Running on JavaFX enables the library to be used on desktops as well as mobile devices. The project offers runnable demos that demonstrate chart creation and rendering techniques. Gantt charts represent the progress of multiple tasks over time, either parallel or sequential. They are commonly used in project or resource planning to understand how one thing impacts another, crossing industries like logistics, aviation, healthcare, as well as software project planning.
FlexGanttFX operates high performance charts by mixing Canvas rendering with standard FX nodes. This allows the application to render the chart itself as a single Canvas without re-applying the full effects for every element in the chart. This allows complex charts to render at an acceptable speed rather than hundreds or thousands of individual nodes.
The framework is built on four primitives. Rows form a tree of resources, activities are time-bounded items placed on a row, layers group activities and control z-order and visibility, and links express dependencies between activities. Time is modeled with java.time.Instant throughout, and the timeline renders at any granularity from milliseconds to decades, with time zones, daylight-saving transitions, weekends, and working hours treated as part of the model rather than display settings. Each row can carry its own layout: the standard layout draws classic bars, the chart layout renders activities as line or area charts so a capacity curve can sit beside the bars it constrains, and the pool layout packs overlapping activities into stacked lines. Editing is direct manipulation, with constraint hooks so the application's own rules decide which moves are allowed.
For the open source release, Lemmerman’s selection of AGPL matches decisions made by other open source yet commercial projects. Bruno Lowagie made a similar decision with iText, an original popular PDF library. His published book Entreprenerd covers the rationale and impact of his decision to make iText available through the AGPL license.
Unlike common licenses like Apache 2, AGPL contains a clause about modified versions of the software being used over a network. Companies that modify the library must make their source code available to the public, even if they do not redistribute the modified version. Although this creates the opportunity for a dual-licensed software business to charge for a different license, it causes a situation where many SaaS firms avoid AGPL projects all together.
Larger vendors have made similar decisions, such as Elastic’s return to open source and Grafana’s 2021 license change. Other vendors like MongoDB selected AGPL before migrating away in 2018.