PDFsam Basic is a mature, open-source JavaFX desktop application for splitting, merging, rotating, extracting, and mixing PDF files. It is built as a multi-module Maven project using JPMS modules, with the Sejda SDK as the PDF processing engine, EventStudio for event-driven communication, and a custom dependency injection framework. The application provides a rich GUI with tool panels, workspace persistence, preferences, theming, internationalization, update/news services, and premium tool integration. This is purely an application repository; there are no data research or analytics components.
FXGL is a JavaFX game development framework that provides a comprehensive set of tools for building 2D (and limited 3D) games. It implements an entity-component system as its core architecture, complemented by dedicated systems for physics (embedded Box2D port), animation, particles, pathfinding (A*, DFS, maze/dungeon generation), UI, input handling, networking (TCP/UDP), localization, save/load, and dialogue editing. The framework exposes a fluent DSL (FXGL facade) for rapid game prototyping, along with a developer console and profiler. Major entry points include the GameApplication abstract class, the FXGL static API, EntityBuilder for entity creation, and AnimationBuilder for animations. Externally, it relies on JavaFX for rendering, Kotlin for DSL syntax, SDL2 for native controller input, and (via the intelligence module) headless browser or MediaPipe WebSocket servers for speech/gesture recognition. The codebase is modular across Maven submodules (fxgl-core, fxgl-scene, fxgl-io, fxgl-tools, etc.) and includes extensive sample applications demonstrating each feature. While most core systems are production‑ready, some areas (e.g., GLImageView, ForeignFunctionCaller) are explicitly marked as work‑in‑progress, and a few components like DFSPathfinder have incomplete implementations.
HMCL (Hello Minecraft! Launcher) is a cross-platform Minecraft launcher written in Java using JavaFX. It manages game instances (install, update, launch), downloads game files and mod loaders (Forge, Fabric, NeoForge, Quilt, LiteLoader, etc.), supports multiple authentication methods (offline, Microsoft, Yggdrasil, authlib-injector), and handles modpacks (CurseForge, Modrinth, MultiMC, etc.). The architecture is a monolith with three modules: HMCL (UI), HMCLCore (core logic), and HMCLBoot (bootstrap). It features a custom task framework for async operations, an event bus, a wizard system for multi-step dialogs, and extensive hardware detection (CPU, GPU, memory) across Windows, macOS, and Linux. The codebase is well-structured but contains copied external libraries (JFoenix skins, APNG reader) and some tight coupling between UI and core modules.
MCA Selector is a desktop application for editing Minecraft Java Edition world saves at the chunk and region level. It provides a graphical interface (JavaFX) and a command-line interface for operations such as selecting, exporting, deleting, importing, and modifying chunks and regions. The application reads and writes Minecraft Anvil (MCA) region files, including POI and entity data, and supports a wide range of Minecraft versions from 1.9 to the latest snapshots through version-specific mapping files and strategy pattern implementations (ChunkFilter, ChunkRenderer, ColorMapping). Architecturally, the application is a monolith with a clear separation of concerns: a UI layer (JavaFX dialogs, TileMap, custom components), a job system (JobHandler with priority queues and thread pools), a data layer (MCA file I/O, NBT parsing, caching via LevelDB), and a version abstraction layer. Key entry points include the Main class (launches GUI or CLI), the Window class (JavaFX stage), and the ParamExecutor (CLI dispatcher). External dependencies include a custom NBT library, Gson, fastutil, Log4j, Apache Commons CLI, Groovy scripting, LevelDB, LZ4, and RichTextFX. Data flows involve loading region files from disk, parsing chunk data (blocks, biomes, heightmaps, entities), applying user-defined filters and changes (including Groovy scripts), and saving modified chunks back to MCA files. The application also generates rendered tile images for the map view, with caching at multiple levels (memory, disk PNG, LevelDB). Overlays provide visual analysis of chunk properties (e.g., inhabited time, entity count) using hue-based coloring. While primarily an application, the repository includes a significant data component: version-specific block color mappings, heightmap definitions, and registry files (blocks, biomes, entities, structures) that are used for rendering and filtering. These mappings are generated by a separate tool within the repository that downloads Minecraft server jars and extracts data. This hybrid nature means the repo serves both as a tool and as a curated dataset for Minecraft world analysis.
OwlPlug is a desktop application for managing audio plugins (VST2, VST3, AU, LV2) and analyzing DAW projects (Ableton Live, Reaper, Studio One). It provides a complete plugin management workflow: scan directories to discover plugin files, extract metadata via a native JUCE-based scanner, enable/disable plugins, manage symlinks, and export reports. The Explore feature allows browsing and installing plugins from remote registries (OwlPlug Registry, Open Audio Stack). DAW project parsing extracts plugin references to enable lookups and dependency tracking. Architecturally, OwlPlug is a multi-module Maven project. The core client (owlplug-client) is built with JavaFX and Spring Boot, using H2/JPA for persistence and Ehcache for image caching. The native host module (owlplug-host) uses JUCE to scan plugin binaries via JNI or an embedded command-line scanner. Separate modules provide reusable UI controls (owlplug-controls), ANTLR4-based DAW parsers (owlplug-parsers), and an AtlantaFX dark theme (owlplug-theme). The event-driven design with Spring `ApplicationEventPublisher` decouples UI updates from background tasks. Notable features include differential plugin scanning (only process new/changed files), a task framework with progress reporting and telemetry (Mixpanel), and a set of custom JavaFX controls (Dialog, DoughnutChart, MasonryPane, ChipView, etc.). The codebase demonstrates solid engineering practices: clear separation of concerns, concurrency patterns (Async.Sequence for stale result prevention), and a three-tier image cache. While some UI components are deprecated and the native scanner introduces platform-specific fragility, the overall architecture is well-organized and the reusable control module is a highlight.
Mindolph is a desktop knowledge management application built with JavaFX. It provides integrated support for mind maps, markdown, PlantUML diagrams, and CSV files, along with AI-powered features such as text reframing, summarization, and chat via various LLM providers. The application features a modular architecture with core, base, FX, and domain-specific modules, an event-driven communication system, a plugin/extension system for mind map operations, and a preference management system. Users can manage workspaces, search within files, and use reusable snippets.
Ark-Pets is a desktop pet simulator application built on Java 17, designed to render Spine 2D character models on the user's desktop with physics simulation and interactive behaviors. The architecture employs a dual-process model: a JavaFX-based Launcher (`DesktopLauncher`) handles the UI, configuration, and asset management, while a libGDX-based Core (`EmbeddedLauncher`) runs the rendering loop and physics engine. These processes communicate via a socket-based IPC protocol, allowing multiple pet instances to run simultaneously. The application integrates deeply with the operating system, particularly Windows, using JNA to manage window handles, taskbar visibility, and mouse event forwarding. It features a custom physics engine (`Plane.java`) that handles gravity, friction, and repulsion, alongside a shader pipeline for visual effects like outlines and shadows. Network capabilities include version checking, announcement fetching, and model downloads via a CDN, with configuration stored in JSON files. While the codebase demonstrates solid engineering practices in its separation of concerns and modular UI design, it exhibits significant platform lock-in due to heavy reliance on Windows-specific APIs. Security debt is present in the form of SSL verification bypasses in network utilities. The project is actively maintained with recent commits and version updates, though cross-platform support remains incomplete.
This is a JavaFX desktop application for playing, analyzing, and linking Chinese chess (Xiangqi). It supports UCI and UCCI chess engines, allowing human vs. engine or engine vs. engine play, as well as pure analysis. The application includes opening book management (local SQLite-based books and a cloud book via chessdb.cn), game record handling (PGN, TXQ, XQF, CBR formats), and a unique "linking" feature that automates play on external chess platforms using screen capture (YOLO models) and mouse simulation. The architecture follows a standard JavaFX MVC pattern with FXML views and controller classes, but the main Controller is monolithic (~900 lines). Cross-platform support is achieved through platform-specific linker implementations (Windows JNA, Linux X11, macOS osascript). The codebase demonstrates solid engineering with reusable utility classes and callback interfaces, though some dependencies are hardcoded and platform linkers are fragile.