VisiData is a terminal-based interactive spreadsheet application for exploring, cleaning, restructuring, and analyzing tabular data. It provides a real-time curses interface for loading data from diverse sources (CSV, JSON, Excel, SQL databases, APIs, etc.), applying transformations via hundreds of keyboard-driven commands (sort, filter, pivot, melt, unfurl, etc.), and saving results. The architecture centers around a Sheet/Column abstraction with a plugin system for loaders, features, and specialized applications (vgit for Git, vdsql for SQL). Key strengths include its extensible command system, dynamic type inference, and reversible operations via undo/redo. While the core is cohesive, the extensive optional dependencies and experimental features introduce some maintenance complexity.
Apio is a command-line interface (CLI) tool designed to streamline FPGA hardware development workflows. It acts as a wrapper and manager for open-source EDA toolchains (Yosys, Nextpnr, Verilator, GTKWave) and hardware drivers, supporting multiple FPGA architectures (ICE40, ECP5, GOWIN, XILINX) and over 80 development boards. The tool automates the full lifecycle of FPGA projects, including initialization, linting, synthesis, place-and-route, simulation, and bitstream upload to hardware. Architecturally, Apio follows a modular design with a Click-based CLI layer that delegates heavy build tasks to a SCons subprocess. Communication between the CLI and SCons is handled via Protocol Buffers to avoid global state sharing. The codebase includes robust package management for downloading and installing toolchains, cross-platform support for Linux, macOS, and Windows, and a comprehensive test suite using pytest. It is a professional-grade tool with strong engineering practices, including CI/CD pipelines and semantic versioning. Technical drift is moderate due to the volatile nature of SCons APIs and the reliance on external toolchain versions. There is also a noted inconsistency in Python version usage (mixing 3.9 compatibility checks with 3.10+ match statements). However, the repository is actively maintained with recent commits and a healthy issue resolution rate. The codebase is suitable for reuse in FPGA tooling projects, particularly the package management and IPC patterns.
KiPart is a Python-based electronic design automation (EDA) toolkit for managing KiCad symbol libraries. It enables bidirectional conversion between KiCad's native .kicad_sym format and human-editable formats like CSV, Excel, SPD (Symbol Pin Description), and JPD (JSON Pin Description). The core functionality includes generating symbols from tabular data, exporting existing libraries to interchange formats, comparing libraries for differences, and an MCP server that exposes these capabilities to AI agents. The architecture centers on a neutral part structure that facilitates lossless conversions between formats (excluding geometric details), with modular converters for each format pair and a flexible comparison engine supporting multiple matching strategies.
PeakRDL is a CLI toolchain for control/status register (CSR) generation centered around the SystemRDL 2.0 language. It compiles register descriptions from SystemRDL or imported formats (e.g., IP-XACT) and exports synthesizable SystemVerilog RTL, C headers, UVM register models, HTML documentation, and more. The architecture is a pluggable CLI: a core dispatcher loads subcommands (built-in: dump, globals, preprocess) and external exporter/importer plugins via setuptools entry points or TOML config. Input processing handles SystemRDL compilation, parameterized components, and element arrays. The codebase demonstrates strong Python engineering with modular configuration schema validation, argument file expansion with environment variable support, and a clean plugin discovery mechanism.
This is a KiCad plugin that integrates with JLCPCB assembly services. It provides a wxPython GUI within KiCad (pcbnew) for assigning LCSC part numbers to footprints, managing rotation/offset corrections, and generating fabrication files (Gerber, Excellon, BOM, CPL) ready for JLCPCB ordering. It also includes a parts database builder that fetches component data from LCSC APIs, a searchable parts catalog with FTS5, and an assembly cost estimator. The architecture is monolithic as a KiCad ActionPlugin, with a separate standalone mode for testing. Key external dependencies are KiCad, wxPython, and SQLite, with the `packaging` library vendored. The codebase demonstrates strong engineering practices: extensive unit tests (many mocking KiCad/wx), transactional correction storage with validation, event-driven UI separation, and reusable utility components. However, it has some coupling to KiCad API version specifics and hardcoded pricing data that may drift over time.
mockturtle is a header-only C++17 library for logic network synthesis and optimization. It provides a generic framework for multiple logic network representations (AIG, MIG, XAG, XMG, k-LUT, etc.) and a wide range of algorithms including cut enumeration, rewriting, balancing, resubstitution, decomposition, technology mapping, and equivalence checking. The library uses template metaprogramming and static polymorphism to achieve flexibility and performance, with a decorator pattern for views that add functionality (depth, fanout, mapping) without modifying base networks. Bundled external libraries (kitty, lorina, percy, bill) handle truth tables, file parsing, exact synthesis, and SAT solving. The codebase is well-tested (Catch2) and includes experimental research flows for emerging technologies like AQFP superconducting logic.
Fritzing is an open-source electronic design automation (EDA) tool focused on maker and educational use. It provides three interconnected views (breadboard, schematic, PCB) for circuit design, with features including component placement, wiring, autorouting, ngspice simulation, microcontroller code editing/upload (Arduino, PICAXE), and export to Gerber, PDF, SVG, and other formats. The application is built as a monolithic Qt/C++ desktop app with a modular internal architecture: model layer (ModelPart, ModelBase), view layer (SketchWidget subclasses), command pattern for undo/redo, and dedicated subsystems for parts management, SVG rendering, and design rule checking. It relies on external libraries such as Boost (graph algorithms), Clipper (polygon operations), QuaZip (ZIP handling), libgit2 (parts repository updates), and ngspice (simulation). The codebase is actively maintained with ongoing Qt6 migration, though some legacy patterns and workarounds remain.
The CircuitNet repository provides an open-source dataset and associated code for machine learning in Electronic Design Automation (EDA). It focuses on four key EDA tasks: congestion prediction, design rule check (DRC) prediction, IR drop prediction, and net delay prediction. The repository includes scripts for extracting features from LEF/DEF files (via Innovus output), training and evaluating deep learning models (CNNs and GNNs) for these tasks, and utilities for data loading and model training. The dataset is distributed in multiple versions (CircuitNet-N28, N14, N45) and consists of preprocessed features and labels stored as NumPy arrays. The codebase is organized into modular components: feature extraction, task-specific model directories, and shared utilities. While the repository enables reproduction of published results, it relies on specific tool versions (Innovus) and has hardcoded paths, which may require adaptation for reuse in different environments.
Kanaries/Rath is an open-source augmented analytics BI platform that automates exploratory data analysis, causal discovery, and dashboard creation. It is a full-stack application with a React/TypeScript frontend (Vite, MobX, shadcn/ui) and multiple Python microservices (causal inference, narrative insight generation, database connectors). The system ingests data from files, databases (PostgreSQL, ClickHouse, MySQL, etc.), and REST APIs, then provides automated visualization (mega-automation), semi-automated exploration, causal analysis (PC, FCI, GES, XLearner), and interactive dashboard building. It also includes custom Vega renderers (WebGL, Painter) for high-performance chart rendering and an Electron desktop wrapper. While primarily an application, it contains significant data research components such as causal discovery algorithms, statistical insight detection, and text pattern extraction, making it a hybrid tool for both data exploration and advanced analytics.
This repository is a curated skill library for data analysis workflows, designed to be consumed by AI agents (Claude Code, Codex). It contains 31 skills organized into 6 categories: data quality validation, documentation/knowledge management, data analysis/investigation, data storytelling/visualization, stakeholder communication, and workflow optimization. Each skill is defined by a SKILL.md file with YAML frontmatter, a step-by-step process, required inputs/outputs, and optional scripts, reference materials, and asset templates. The scripts are standalone Python CLIs that generate synthetic data for demo purposes and can be adapted to real datasets. The repo is not a deployable application or a data pipeline; it is a structured knowledge base and toolset for performing data analysis tasks programmatically. It covers common analytical patterns such as null counting, duplicate detection, cohort retention, funnel conversion, A/B testing, time series anomaly detection, metric calculation, and more. The codebase is well-organized and follows consistent conventions, but shows signs of staleness (future dates in README and LICENSE, no recent activity). Dependencies are not pinned, and no environment definitions are provided, limiting reproducibility without manual setup.
GTKWave is a mature desktop application for viewing waveform dump files generated by digital circuit simulators (VCD, FST, GHW, etc.). It provides a graphical interface with hierarchical signal browsing, time-synchronized waveform rendering, marker placement, pattern search, and transaction filtering. The tool also ships with multiple command-line utilities for format conversion (e.g., vcd2fst, fst2vcd) and signal mining. Its codebase is structured as a core GObject-based library (libgtkwave) that abstracts dump-file loading and querying, a set of helper libraries (libghw, libvzt, liblxt, libwcp, libjrb) for specific formats, and a GTK GUI layer (src/) that handles user interaction, rendering, and state. The project continues to receive active maintenance, with recent work including GSettings integration, WCP remote control protocol, and migration to Meson build system. However, the code retains significant global state (struct Global), platform-specific #ifdefs, and some duplicated VCD parsing logic across converters, which somewhat limits modularity and testability.
PyLTSpice is a Python library and CLI toolkit for automating LTspice circuit simulations. It exposes programmatic editing of .asc netlists (AscEditor/SpiceEditor), reading of LTspice .raw binary output files (RawRead), histogram generation for Monte Carlo analysis, and command-line utilities (ltsteps, histogram, raw_convert, rawplot, run_server, asc_to_qsch). The codebase is primarily a compatibility layer over the spicelib package: many modules are thin re-exports that emit deprecation notices and delegate to spicelib, while preserving legacy class names such as SimCommander and LTSpiceRawRead. The repository includes unit tests with sample .raw/.log/.asc files, Sphinx documentation, and examples. Although it processes simulation data, this is an application/library rather than a data-research repository. Maintenance is active, but the tight dependency on spicelib and the presence of legacy shims create moderate drift risk.