awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
NorthwoodsSoftware avatar

NorthwoodsSoftware/GoJS

0
View on GitHub↗
8,447 stars·2,841 forks·HTML·41 viewsgojs.net↗

GoJS

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 transactional history model that supports atomic commits for reliable undo and redo operations.

Its capability surface covers a wide range of specialized diagram types, including BPMN modeling, Gantt charts, industrial process monitoring, and interactive floor planning. It includes advanced interaction controls such as drag-and-drop palettes, in-place text editing, and obstacle-avoidance link routing, while maintaining performance for large datasets via viewport virtualization.

The framework integrates with various frontend architectures and supports server-side rendering for image generation and automated testing.

Features

  • Interactive Diagramming Libraries - Functions as a library for embedding interactive, browser-rendered diagrams that bind data to visual templates.
  • Data-Driven Diagramming Frameworks - Provides a complete framework for building diagrams that are bidirectionally synchronized with JavaScript data models.
  • Node-Based Diagramming Frameworks - Provides a framework for building interactive, node-based visual editors and diagrams in web applications.
  • Drag and Drop - Provides comprehensive drag-and-drop functionality for moving parts within diagrams or importing external HTML elements.
  • Organizational Charting - Creates hierarchical organizational charts with integrated capabilities for structural editing and reorganization.
  • Automated Graph Layouts - Uses algorithmic positioning such as tree, circular, and force-directed layouts to organize complex graphs.
  • Graph Data Models - Manages the diagram as a collection of nodes and links with separate data for each.
  • Graph Layout Engines - Implements an algorithmic system for automatically arranging nodes into trees, grids, and force-directed layouts.
  • Visual Data Modeling - Connects structured data models to a graphical interface for real-time synchronization and bidirectional updates.
  • Change Tracking - Tracks additions, deletions, and modifications to the diagram model to support history and synchronization.
  • Undo-Redo State History - Tracks state changes as atomic operations to provide reliable undo and redo functionality for user actions.
  • Diagram - Supports discarding changes made during a current batch operation to restore the previous diagram state.
  • Composite Visual Elements - Constructs complex visual parts using nested panels, shapes, text, and images as the primary building blocks for nodes.
  • Flowchart Rendering - Implements a programmatic rendering engine for custom flowcharts and process diagrams using vector graphics.
  • Canvas Rendering Engines - Implements a high-performance rendering system that draws nodes and links to an HTML Canvas or SVG.
  • Link Path Routing - Determines the path of links between nodes using curved lines or obstacle-avoidance routing to prevent overlaps.
  • Interactive Canvas Editing - Provides tools for users to drag elements and reconnect links directly on the canvas.
  • Template-Based Element Generation - Generates visual diagram parts by mapping data records to predefined reusable appearance templates.
  • Tree Layouts - Implements algorithmic tree-structured graph layouts to automatically arrange nodes into layers.
  • Algorithmic Positioning Engines - Calculates node coordinates using a set of pluggable layout algorithms for trees, grids, and graphs.
  • Atomic Transactional State Commits - Allows recording batches of diagram changes as single atomic operations for consistent undo and redo.
  • Diagram Link Styles - Provides diverse link styles including orthogonal and perpendicular lines that automatically adapt to node alignment.
  • Element Relationship Mapping - Connects nodes using lines and custom link types to represent relationships based on underlying data.
  • Large Dataset Optimizations - Reduces memory overhead by creating only visible elements while handling thousands of data points.
  • Composite Visual Trees - Constructs nodes and links as a hierarchy of shapes, text blocks, and panels to define visual layout.
  • Undo-Redo Management - Manages the editing timeline through a transactional system for state restoration.
  • Canvas Pan and Zoom Controls - Provides tools for navigating the canvas, including pinch-zooming and infinite scrolling.
  • Bidirectional Data-Binding - Links visual element properties to a JavaScript data model for bidirectional automatic updates.
  • Component Templates - Uses reusable templates to define the appearance and layout of nodes and links.
  • Data-to-UI Bindings - Links visual element properties to fields in a data model for automatic updates.
  • Canvas Element Repositioning - Enables repositioning of visual elements on the canvas by updating their location properties.
  • Rotation Handles - Implements interactive rotation handles for spinning visual elements around their center point.
  • Interactive Visual Modeling Tools - Provides a framework for creating editable diagrams with interactive palettes, transactional history, and in-place text editing.
  • Element Resizers - Provides interactive resize handles to programmatically and manually update element bounding box dimensions.
  • User Input Processing - Processes mouse, touch, and keyboard input via a tool system to execute interactive commands.
  • Viewport-Based Virtualization - Maintains high performance for large datasets by rendering only elements currently within the visible viewport.
  • Visual Component Templates - Uses a template-based system to map data records to reusable visual definitions for nodes and links.
  • Bidirectional Bindings - Provides bidirectional synchronization between underlying data models and visual diagram elements.
  • Interactive Link Reconnection - Supports disconnecting and reconnecting link ends to valid connection ports via drag-and-drop.
  • BPMN 2.0 Web Modelers - Creates interactive process notation diagrams with custom templates and linking rules.
  • Floor Plan Design - Provides capabilities for creating spatial layouts with drag-and-drop palettes and reshapable area definitions.
  • Gantt Charts - Creates project timelines with collapsible task trees and scheduled durations in a Gantt chart format.
  • Interactive Floor Planning - Enables designing spatial layouts with grid-snapping walls, room definitions, and drag-and-drop furniture.
  • Mind Mapping Software - Develops interactive mind maps using double-tree diagrams with dynamic node addition.
  • Warehouse Layout Planning - Enables the creation of warehouse layouts with reshapable areas and drag-and-drop palettes.
  • Cascading Deletions - Ensures that deleting a parent node automatically removes all of its descendant children.
  • Data Loading - Automatically loads structured JSON objects or arrays into the diagram model.
  • Model Persistence - Saves and loads diagram state as JSON-formatted text for persistence and restoration.
  • Custom Tool Integrations - Enables overriding methods of command handlers, tools, and layouts to add custom interactive behaviors.
  • Sequence Diagrams - Provides specialized templates and routing for creating interactive sequence diagrams.
  • State Diagrams - Supports the construction of state diagrams with dynamic runtime node and link creation.
  • Data-Driven Diagram Generators - Generates visual diagrams by reading and processing structured JSON data.
  • Multi-View Synchronization - Links multiple diagrams to a single data model so changes are reflected across all views.
  • Concept Maps - Displays interlinked concepts using a force-directed layout with link labels.
  • Data-Driven Visual Styling - Provides the ability to apply distinct visual styles to nodes automatically based on their associated data attributes.
  • Diagram Animations - GoJS moves nodes or tokens along link paths and applies visual effects to highlight specific parts.
  • Edge Flow Animations - Creates animated visual effects on links to represent the flow of materials through pipes and valves.
  • Family Tree Renderers - Arranges nodes in hierarchical layers to display genealogical relationships across generations.
  • Fill and Stroke Styles - Provides precise control over the fill color, stroke color, and other visual properties of drawn shapes.
  • Custom Shape Rendering - Renders a variety of predefined and user-defined custom shapes directly on the canvas.
  • Shape Rendering - Implements the rendering of geometric primitives such as rectangles, ellipses, and polygons within the diagram canvas.
  • Grid-Based Node Layouts - Positions nodes in a grid-like arrangement with configurable ordering, spacing, and wrapping.
  • Link Routing Controls - Provides orthogonal, curved, and parallel routing options for connection lines between diagram nodes.
  • Image Format Rendering - Supports loading and rendering images from various formats and sources as elements within diagram nodes.
  • Network Path Routing - Computes paths through connected nodes while avoiding obstacles and respecting specific link constraints.
  • Obstacle-Avoidance Link Routing - Computes paths for connecting lines that automatically route around nodes to prevent visual overlap.
  • Obstacle Avoidance Routing - Plots link paths that automatically avoid crossing over nodes using a specialized obstacle-avoidance router.
  • Path Animation Utilities - Animates diagram parts moving along complex link paths to illustrate progression or flow.
  • Diagram Path Animations - Provides the ability to animate nodes or tokens moving along link paths to visualize flow and progression.
  • Snap Alignment Libraries - Positions nodes and links using grid snapping and precise alignment tools for uniform distribution.
  • Subgraph Grouping - Treats collections of nodes and links as single units to create manageable subgraphs.
  • Schematic Capture Editors - Supports drawing electronic circuit diagrams using specialized symbols, wires, and routed connections.
  • Functional Network Topologies - Designs network topologies with the ability to organize nodes into functional subnetworks.
  • Interactive Connection Ports - Allows users to dynamically add and manage connection ports on nodes via buttons or context menus.
  • Dynamic System Modeling - Provides visualization capabilities for system dynamics, including material storages and flows.
  • Circular Layouts - Positions nodes in circular or radial arrangements around a central point.
  • Directed Graph Layouts - Places nodes of directed graphs into organized layers of rows or columns for hierarchical readability.
  • Component Behavior Overrides - Allows overriding internal methods and modifying properties of nodes and links to customize interaction and rendering.
  • Custom Interactive Tools - Supports the creation of custom interaction behaviors such as lasso selection and freehand drawing.
  • Container Nesting - Provides hierarchical containers that organize related nodes into expandable and collapsible groups.
  • Industrial Monitoring Screens - Builds SCADA-style monitoring screens and process flow visualizations for industrial control systems.
  • Industrial Process Visualization - Creates SCADA-style monitoring screens and piping diagrams with live indicators and animated process flows.
  • Real Time Process Monitors - Displays real-time industrial data on SCADA-style diagrams with updating indicators and icons.
  • Security Operation Dashboards - Constructs real-time security operation dashboards displaying live video feeds and door status.
  • Buttons - Integrates clickable interactive controls like expanders and checkboxes directly into the visual nodes.
  • Chart Embeddings - Integrates various data visualization components, including pie and bar charts, directly into individual nodes.
  • Collapsible Containers - Implements containers that group diagram elements together and can be expanded or collapsed by the user.
  • Component Palettes - Ships a draggable palette for placing furniture, appliances, and stairs into a diagram with resizing handles.
  • Context Menus - Provides pop-up context menus for executing actions on specific diagram elements.
  • Custom Node Geometries - Defines complex unique figures using SVG-like path strings and segment objects.
  • Custom Node and Edge Geometries - Constructs arbitrary shapes by parsing geometry path strings or assembling path figures.
  • Custom UI Control Implementations - Implements specialized UI widgets like gauges, meters, and checkboxes directly within the diagram canvas.
  • Overview Maps - Provides a thumbnail view of a larger diagram to show the current viewport.
  • Drag-and-Drop Palettes - Ships a draggable element palette for easily adding nodes and components to a diagram.
  • Force-Directed Layouts - Positions nodes using physical simulations of attraction and repulsion forces.
  • Floor Plan Components - Allows adding appliances, stairs, and furniture from a palette with support for snapping, rotation, and resizing.
  • Link Creation Handles - Allows users to create new links by dragging from the edge of a node.
  • Interaction Logic Hooks - Provides functional interfaces and hooks to override built-in tools and events for custom interaction models.
  • Interaction Controls - Implements high-level editor interaction logic including context menus, tooltips, and keyboard shortcuts.
  • Swimlane Layouts - Builds collapsible swimlanes that constrain nodes to stay within their lane.
  • Hover Previews - Displays informational tooltips as rich content previews when a user hovers over a diagram object.
  • Hover-Activated Action Buttons - Displays contextual action buttons in a node's adornment when the user hovers over it.
  • In-Place Editing Inputs - Allows users to modify text blocks directly within the diagram using custom HTML editors.
  • Input Handling Systems - Processes mouse and keyboard events through a modal tool system to execute specific interaction behaviors.
  • Interactive Connection Managers - Provides tools for dynamically drawing, relinking, and deleting connections between node ports.
  • Kanban Boards - Builds interactive Kanban boards for categorizing and editing tasks within columns.
  • Custom Layouts - Provides base structures for developing bespoke positioning algorithms to arrange nodes and links.
  • Node Grouping Visuals - Implements visual boundaries and panels to group nodes into clusters or subgraphs.
  • Data Merging - Applies incremental changes to the model without requiring a full reload of the data set.
  • Grid Snapping - Provides a coordinate grid that allows users to snap element positions and sizes to precise increments.
  • SVG Integration - Integrates SVG path strings to create custom vector-based shapes and icons within diagrams.
  • Viewport Focus Animations - Animates the diagram view to scroll to and scale a specific node to draw user attention.
  • Viewport Scrolling Control - Moves the viewport to bring a particular node, link, or part into view.
  • Boundary Constraints - Restricts movement or placement of nodes using custom dragging and boundary rules.
  • Keyboard Shortcut Mapping - Handles keyboard input events to trigger specific diagram actions or custom command logic.
  • Frontend Framework Integrations - Enables embedding diagrams into various JavaScript frontend framework architectures without external dependencies.
  • Viewport Fitting Controls - Adjusts the viewport so the entire diagram content is visible within the display area.

Star history

Star history chart for northwoodssoftware/gojsStar history chart for northwoodssoftware/gojs

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does northwoodssoftware/gojs do?

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.

What are the main features of northwoodssoftware/gojs?

The main features of northwoodssoftware/gojs are: Interactive Diagramming Libraries, Data-Driven Diagramming Frameworks, Node-Based Diagramming Frameworks, Drag and Drop, Organizational Charting, Automated Graph Layouts, Graph Data Models, Graph Layout Engines.

Which projects share features with northwoodssoftware/gojs?

Projects with overlapping indexed features include: cytoscape/cytoscape.js — Cytoscape.js is a JavaScript library designed for rendering interactive node-link diagrams and analyzing complex… xyflow/xyflow — This project is a React-based framework for constructing interactive, node-based visual interfaces. It provides a… konvajs/react-konva — react-konva is a declarative React canvas graphics library and 2D vector graphics framework. It serves as a rendering… alyssaxuu/flowy — Flowy is a JavaScript library designed for building interactive, drag-and-drop flowchart interfaces. It enables the… antvis/x6 — X6 is a JavaScript diagramming library and SVG graph rendering engine used to build interactive flowcharts, mind maps,… jerosoler/drawflow — Simple flow library 🖥️🖱️.

Projects sharing features with GoJS

These projects share indexed features with GoJS. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • cytoscape/cytoscape.jscytoscape avatar

    cytoscape/cytoscape.js

    10,857View on GitHub↗

    Cytoscape.js is a JavaScript library designed for rendering interactive node-link diagrams and analyzing complex network structures directly within a web browser. It functions as a comprehensive framework for building responsive graph interfaces, providing the tools necessary to visualize relational datasets and manage hierarchical data models. The library distinguishes itself through a modular architecture that supports custom layout algorithms and rendering styles, allowing for the integration of physics-based engines to organize complex network structures automatically. It utilizes an even

    JavaScriptanalysiscytoscapejsgraph-theory
    View on GitHub↗10,857
  • xyflow/xyflowxyflow avatar

    xyflow/xyflow

    37,257View on GitHub↗

    This project is a React-based framework for constructing interactive, node-based visual interfaces. It provides a platform for building canvases where users define, connect, and organize logical processes, data pipelines, or complex workflows through a graphical interface. By utilizing a modular component architecture, it enables the development of low-code environments, visual programming tools, and interactive diagramming applications. The framework distinguishes itself through a declarative approach where state changes automatically synchronize with the visual representation of nodes and e

    TypeScriptflowchartgraphjavascript
    View on GitHub↗37,257
  • konvajs/react-konvakonvajs avatar

    konvajs/react-konva

    6,362View on GitHub↗

    react-konva is a declarative React canvas graphics library and 2D vector graphics framework. It serves as a rendering engine and interactive canvas toolset that allows for the drawing and management of complex 2D shapes and graphics using a React component model. The library maps reactive component trees to an underlying object-oriented graphics scene graph, enabling the synchronization of visual states with application data. It provides specialized tools for building interactive graphical interfaces, including support for multi-touch gestures, drag-and-drop functionality, and real-time trans

    TypeScript
    View on GitHub↗6,362
  • alyssaxuu/flowyalyssaxuu avatar

    alyssaxuu/flowy

    12,048View on GitHub↗

    Flowy is a JavaScript library designed for building interactive, drag-and-drop flowchart interfaces. It enables the creation of canvas-based environments where users can arrange blocks to design custom logic sequences, decision trees, and visual process maps. The library provides a structured approach to diagramming by organizing elements into a hierarchical parent-child tree. It features coordinate-based snapping logic to ensure blocks automatically align into organized layouts during user interaction. To support complex system configurations, the tool includes event-driven callback hooks th

    JavaScriptdiagramsdrag-and-dropengine
    View on GitHub↗12,048
  • Compare all 30 related projects→