30 open-source projects similar to penrose/penrose, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
likec4 is an architecture-as-code framework that transforms text-based architecture definitions into interactive diagrams, static websites, and image files. It serves as a system architecture visualizer and C4 model diagram generator, allowing users to define software components, boundaries, and deployment infrastructure using a domain-specific language. The tool distinguishes itself by providing a modeling environment with Language Server Protocol integration for real-time validation and autocomplete. It enables interactive architecture documentation where users can navigate through hierarch
Flowchart Fun is a text-based diagram generator and interactive visual canvas editor that automatically transforms plain text input and natural language prompts into structured flowcharts and diagrams without requiring manual node placement. The application combines automated layout algorithms and structural templates with a web canvas interface for organizing layouts, applying custom shapes, borders, colors, and text sizes to diagram nodes and edges. The platform includes multi-format export pipelines that convert finished charts directly into vector graphics, raster images, and document dat
PlantUML is a text-to-diagram generator that translates human-readable markup into structured graphical representations. It functions as a diagram-as-code tool, allowing users to create and maintain technical documentation, architectural models, and flowcharts by decoupling diagram content from visual layout. The project distinguishes itself through a comprehensive rendering pipeline that processes domain-specific markup into various output formats, including vector and raster graphics. It utilizes a graph-based layout engine to calculate spatial positioning, while a declarative styling layer
Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining custom languages to parse, validate, and extract data from input text, transforming raw strings into hierarchical abstract syntax trees based on specified formal rules. The project utilizes an Earley parsing algorithm, which allows it to support all context-free grammars, including those with left recursion and ambiguity, without requiring predefined operator precedence. It also includes a dedicated debugging toolkit for tracing and visualizing the step-by-step state transitions
Dashing is a Ruby dashboard framework used to build real-time, full-screen data displays. It employs a Ruby domain-specific language for defining data sources and visual components, utilizing a grid-based widget system to organize information for automated visual reporting. The framework is optimized for television screens and large monitors in office or operations environments. It implements a server-sent events architecture to push live data updates from any source directly to the browser. The system includes a background job scheduler for periodic data refreshes and automated metric repor
TrumpScript is a Python-based domain specific language and compiler extension that wraps the Python runtime to enforce custom grammar and vocabulary rules. It transforms a specialized, case-insensitive vocabulary and natural speech patterns into executable Python instructions. The implementation distinguishes itself through strict constraints on source code, including a variable name system that restricts identifiers to a predefined whitelist and a numeric parser that rejects any integer not exceeding one million. It further utilizes a token-filtering preprocessor to remove filler words and n
Gatling is a load testing framework and traffic generation engine used to measure response times and error rates under heavy load. It functions as an as-code testing library, allowing users to define high-volume traffic simulations and performance tests through programming languages rather than graphical interfaces. The system enables multi-language load simulation and the ability to model concurrent user traffic to identify infrastructure bottlenecks and stability limits. It supports a test-as-code workflow, where version-controlled scripts are integrated into build pipelines as performance
Varnish Cache is an HTTP reverse proxy and content accelerator designed to sit in front of web servers. It functions as a caching engine that stores frequently accessed web content in memory to reduce the processing load on backend origin servers and accelerate delivery times for end users. The software distinguishes itself through a domain-specific configuration language that compiles request-handling logic into machine-level bytecode for execution at wire speed. It utilizes a multi-threaded event loop to manage concurrent connections and employs shared-memory object storage alongside virtua
PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed as a cross-platform frontend language for building safe web applications, utilizing a static type system and a JavaScript compiler to ensure program correctness across browser and server environments. The language is distinguished by its emphasis on mathematical purity, featuring a robust type system with first-class support for monads. It provides a sophisticated toolset for static verification, including algebraic data types, type classes, and automatic type inference to reje
viz-js is a JavaScript rendering library and graph visualization engine that converts Graphviz DOT language descriptions into visual diagrams. It functions as a Graphviz rendering library designed to produce SVG output for web applications. The project utilizes a WebAssembly port of the Graphviz C library to execute layout engines directly in the browser. To maintain interface responsiveness, it processes computationally expensive layout calculations within background worker threads and uses a standardized JSON format for layout serialization. The library provides tools for dynamic graph vis
Awaitility is a Java asynchronous testing library and conditional polling framework. It provides a fluent domain-specific language to synchronize tests with asynchronous operations by polling for specific states or conditions. The library allows for the configuration of polling intervals, timeouts, and the assignment of specific threads or services to handle background polling. It includes mechanisms for deadlock detection, exception filtering to treat specific errors as false results, and the ability to fail fast when a prohibited condition is met. The framework covers state verification, i
Drawnix is a digital whiteboarding and visual diagramming application centered around an infinite canvas. It provides a workspace for freeform sketching, interactive brainstorming, and the creation of structured visual documentation. The platform distinguishes itself by supporting both manual drawing and the automatic generation of diagrams from markup text and mermaid syntax. It utilizes a plugin architecture that allows for the integration of custom modules to extend drawing behaviors and application features. The toolset includes brush-based annotations, image insertion, and a coordinate
Premake is a build system generator and cross-platform build configuration tool. It functions as a scripting engine that transforms scripted workspace definitions into native project files for multiple build toolsets and compilers. Additionally, it can generate JSON-formatted compilation databases for use with language servers and static analysis tools. The project distinguishes itself through a programmable runtime that allows for internal function hooking and the interception of build logic. This extensibility enables users to create custom toolset generators, implement modular extensions f
Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications. It functions as an abstract syntax tree compiler and native interop layer, allowing developers to map Rust types and functions into a scripting environment for bidirectional communication. The project serves as a framework for creating customizable domain-specific languages. It allows for the definition of custom operators, syntax, and restricted execution environments, enabling the creation of specialized languages with tailored functional sets. The engine covers a broad rang
Aerosolve is a machine learning framework designed for training and deploying interpretable models. It functions as a feature engineering tool and a model trainer that utilizes sparse feature modeling to simplify weight debugging and accelerate data iteration. The system includes a specialized domain-specific transformation language for converting raw data families into model-ready representations. It also provides capabilities for visual content analysis by mapping images into dense high-dimensional vector spaces to rank and organize data by style or content. The framework allows for human-
Sonic Pi is a live coding music environment and algorithmic composition tool. It functions as a Ruby-based audio engine that allows users to compose and perform music in real time by writing and executing code during playback. The platform serves as an educational coding platform, using sound creation as a play-based environment to teach software logic and programming principles. It also acts as a MIDI and OSC controller for synchronizing external hardware and software. The system covers a broad range of audio capabilities, including software-based sound synthesis, audio sample manipulation,
CMake is a cross-platform build system generator and build automation tool. It is used to define build requirements and dependencies for C and C++ source code, managing the compilation and linking process across different operating systems. The project functions by generating platform-specific build files and scripts from a single configuration. This allows for the standardization of how software is compiled and packaged for compilers and development tools across various environments. The tool covers C++ project configuration and native application compilation for desktop and embedded system
Icones is a client-side icon browser and management tool that lets you search, preview, and download icons from the Iconify ecosystem. It provides instant fuzzy search across thousands of icons from multiple collections, all performed locally in the browser without server round-trips. The tool enables you to filter icons by category, bookmark individual icons or entire collections for later use, and download icons as SVG files. A distinctive capability is the ability to pack selected icons into a custom icon font file, generated on the client side using WebAssembly-based font compilation. Ic
This project is an AI-powered diagramming tool that converts natural language descriptions into editable visual charts and hand-drawn style sketches. It integrates large language models to translate text-based concepts into structured visual maps and coordinate data for a drawing canvas. The system features a dedicated provider manager for the secure configuration of API keys and credentials for external language models. It employs a visual flow optimizer that calculates optimal connection points for arrows and dynamic layout positioning to reduce overlap in complex diagrams. The tool combin
LogicFlow is an SVG-based flowchart editing framework and visual graph editor used for building customizable business process diagrams. It serves as a customizable diagramming engine for rendering business process models, entity relationship diagrams, and unified modeling language charts. The system is characterized by a plugin-based architecture that allows developers to define specialized graphical elements and register pluggable modules. A distinctive feature is its overlay system, which positions standard HTML components on top of the SVG canvas to create interactive menus and control pan
This project is a Ruby-based package definition repository that functions as a cross-platform package manager and software dependency resolver for macOS and Linux. It provides a centralized system for installing, updating, and managing software through a Git-based distribution model. The system distinguishes itself through a binary package distribution network that produces pre-compiled bottles to avoid local compilation from source. It utilizes a Ruby-based domain specific language to define installation recipes and employs a distributed version control architecture to synchronize these defi
This project is a renderer and theme engine for Mermaid.js that converts diagram syntax into styled SVG graphics and ASCII text. It provides a type-safe diagram editor and a pipeline for transforming diagram source code into scalable vector graphics or plain text visuals. The system features a dedicated theme engine that maps editor colors and CSS variables to diagram elements. It enables dynamic diagram theming through CSS custom properties for real-time color updates and supports index-based styling to override the appearance of specific nodes and edges. The tool covers a range of visualiz
Nevergrad is a gradient-free optimization library and hyperparameter optimization framework designed to find the minimum of objective functions without using derivatives. It serves as an asynchronous optimization engine that decouples parameter suggestions from result reporting to support parallel function evaluations. The project specializes in multi-objective optimization to identify Pareto fronts for competing goals and provides a suite for benchmarking the performance and convergence of different optimization routines. It supports black-box system optimization, enabling the tuning of exte
This is a Python scientific computing library for finding the global maximum of expensive black-box functions. It operates as a global optimization framework that identifies optimal input parameters within defined bounds to maximize a target output. The library utilizes Gaussian process regression to predict function values and uncertainty, guiding the search for optimal parameters. It employs a surrogate-model optimization approach to approximate high-cost objective functions, reducing the total number of required evaluations. The system manages the trade-off between exploration and exploit
Moe-Counter is a self-hosted page view tracker that renders visitor counts as dynamically generated SVG badges with anime-themed styling. It operates as a lightweight Node.js HTTP service that associates each unique counter name in a URL with a stored page view count, providing a customizable alternative to third-party analytics services. The service is designed for flexible deployment, running either directly from source with pnpm dependency management or as a pre-built Docker image from GitHub Container Registry. Runtime configuration is handled entirely through environment variables set in
SVGEdit is a browser-based SVG editor and canvas engine used for creating and modifying scalable vector graphics files. It provides a web interface for vector design and functions as an embeddable editor that can be injected into HTML elements within other web applications. The project allows for the development of custom SVG tools and the construction of bespoke vector graphics editors by utilizing its standalone drawing engine.
GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts, organizational charts, and network diagrams. It functions as a data-driven framework that binds JavaScript data models to visual elements, enabling bidirectional synchronization between the underlying data and the graphical representation. The library features a comprehensive graph layout engine capable of automatically arranging nodes into trees, grids, circles, or force-directed layouts. It distinguishes itself through a template-based system for generating visual parts and a
DefinitelyTyped is a community-maintained type store and centralized JavaScript type registry. It serves as a repository of static TypeScript type declarations for third-party JavaScript libraries, providing the necessary metadata to enable compile-time safety and editor intelligence for external modules not originally written in TypeScript. The project operates as a collaborative ecosystem where contributors define, validate, and maintain type declarations through a structured review process. This involves mapping type definition versions to specific library and compiler releases to ensure s
X6 is a JavaScript diagramming library and SVG graph rendering engine used to build interactive flowcharts, mind maps, and visual workflow editors. It provides a framework for defining customizable node and edge behaviors, utilizing a hybrid rendering approach that combines SVG and HTML. The library decouples the visual graph representation from underlying business logic and data structures through a dedicated state management system. It allows for extensive extensibility via a registration mechanism for custom nodes, edges, and canvas tools. The toolkit includes capabilities for automatic g
type-fest is a library of reusable utility types for performing complex transformations and validations on objects, arrays, strings, and numeric ranges in TypeScript. It provides a collection of type definitions designed to handle advanced structural changes and constraints. The project distinguishes itself by offering specialized logic for string literal processing, such as casing transformations and pattern-based modifications, and type-level arithmetic for calculating numeric ranges and absolute values. It also includes utilities for enforcing deep immutability, ensuring union mutual exclu