semiotic  by nteract

React data visualization framework for complex charts and networks

Created 9 years ago
2,455 stars

Top 18.4% on SourcePulse

GitHubView on GitHub
Project Summary

A React-based data visualization framework, Semiotic addresses complex charting needs beyond standard dashboards, targeting developers requiring advanced visualizations like network graphs, coordinated views, and real-time data streams. It offers a layered abstraction, enabling rapid development of common charts while providing deep D3-level control for custom requirements, ultimately accelerating the creation of interactive and sophisticated data-driven UIs.

How It Works

Semiotic employs a three-tiered abstraction: Charts for common visualizations with sensible defaults, Frames for granular control over rendering, interaction, and layout, and Utilities for standalone components like axes and legends. It integrates React with D3, offering network visualizations (force-directed graphs, Sankey, chord diagrams) as first-class React components with a consistent API. The framework also features real-time canvas rendering at 60fps and an AI-ready interface designed for LLM code generation, enabling AI assistants to produce correct Semiotic code.

Quick Start & Requirements

  • Install: npm install semiotic
  • Prerequisites: React 18.1 or later.
  • Resources: Interactive documentation, examples, and a playground are available at semiotic.nteract.io.

Highlighted Details

  • Comprehensive network visualization components (ForceDirectedGraph, SankeyDiagram, ChordDiagram) with a unified React API.
  • Support for coordinated views, including LinkedCharts for cross-highlighting and ScatterplotMatrix with brushing-and-linking.
  • Real-time streaming charts rendered on canvas at 60fps for dynamic data visualization.
  • Built-in annotation system and server-side SVG rendering capabilities for Node.js environments.
  • AI-ready schemas and entry points (semiotic/ai) facilitating LLM-driven chart code generation.

Maintenance & Community

The project acknowledges key contributors and follows the nteract Code of Conduct. Detailed documentation, a changelog, and a migration guide are provided. Specific community channels (e.g., Slack, Discord) or a public roadmap are not explicitly mentioned in the README.

Licensing & Compatibility

Licensed under the Apache 2.0 license, permitting commercial use and integration with closed-source projects. Compatible with modern React applications, including Next.js (App Router), Remix, and Astro, leveraging "use client" directives for server-side rendering.

Limitations & Caveats

For simple, static line or bar charts in dashboards where advanced customization is not anticipated, libraries like Recharts may offer a larger ecosystem and more community examples. Semiotic is optimized for projects demanding specialized capabilities such as network visualization, statistical summaries, or highly custom charting interactions.

Health Check
Last Commit

22 hours ago

Responsiveness

Inactive

Pull Requests (30d)
62
Issues (30d)
1
Star History
1 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.