+#+BEGIN_SRC sh
+sudo apt-get install graphviz
+#+END_SRC
+* TO DO
+Note: Because this is side project (and I have many of them) I can
+only contribute few hours per year at average. Any help is welcome. A
+LOT of cool ideas could be implemented. For intstance:
+
+- BUG: Should not hide references if there are too many of them to
+ classes if referring classes are not visible anyway because of
+ blacklist/whitelist rules. Basically reference counting should
+ exclude not visible classes.
+
+- BUG: Orphaned class removal does not work always. There are many
+ bugs and corner cases to find and fix still.
+
+- BUG: Code is not very readable. Document and refactor for better
+ maintainability.
+
+- FEATURE: Create installable DEB package.
+ - Submit it to some Debian developer for integration or become
+ Debian package maintainer.
+
+- FEATURE: Make it modular. That is: central part, an application
+ model could be standalone and serializable.
+
+ - There could be multiple ways to acquire model:
+ - By introspecting application via Java reflections (current mode
+ of operation).
+ - By parsing java source. (unfinished)
+
+ - There could be ways to manipulate model:
+ - Store/load/compare.
+ - Trim uninteresting parts.
+ - Highlight important parts.
+
+ - There could be multiple ways to render model:
+ - PNG/SVG (currently implemented)
+ - PlantUML (TODO)
+ - Interactive 3D visualization (TODO)
+
+- FEATURE: Implement (or integrate existing java parser
+ https://javaparser.org/) to be able to produce code visualizations
+ based on source code (in addition to current reflection based
+ approach).
+
+- FEATURE: Integarte with [[http://plantuml.com/class-diagram][PlantUML]].
+
+- FEATURE: Add dark theme for generated graphs.
+
+- FEATURE: Sort Class fields by alphabet.
+
+- FEATURE: Visualize also concrete field values so it could be used as
+ ultra cool runtime logging/debugging framework.
+
+- FEATURE: Possibility to visualize structure and data from JVM
+ snapshot.
+
+- FEATURE: Possibility to attach to remote process to visualize
+ data/structure using JVM debug port and mechanism.
+
+- FEATURE: Possibility to attach to JVM using JVM agent.
+
+- FEATURE: Possibility to inspect graphs in 3D using [[https://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D engine]].
+
+- FEATURE: Possibility to select classes/fields/values to be
+ visualized in some graph query language. For greater flexibility in
+ comparison to currently supported glob syntax.
+
+- FEATURE: Add option to control JavaInspect via JSON or XML config
+ file. For example different graphs for given project could be
+ defined once in plain text config, possibly with the aid of some
+ interactive utility. Then defined graphs could be updated as part of
+ project build or release process.
+
+- FEATURE: Configurable maven plugin to generate graphs as part of the
+ project build/release process.
+* See also
+Similar or alternative solutions:
++ http://www.class-visualizer.net/