A tornadofx SVG builder could also be an idea. SVG seems to map perfectly to a declarative builder and a kotlin dsl could reduce a lot of the pains in building svg's. Advanced functionality could then be provided by wrapping some of d3's modules or replicating them in some way or form.