Skip to content
ispyisail edited this page Sep 11, 2026 · 4 revisions

History of QElectroTech

The story of how QElectroTech was born, evolved, and became a thriving open-source project.

The Beginning (2007-2008)

Founding

QElectroTech was founded in 2007 by two French students:

  • Xavier β€” Primary architect and lead developer, responsible for the base application architecture and key technical decisions
  • Benoit β€” Co-founder and developer

First Release

Version 0.1 launched on March 9, 2008, establishing QElectroTech as a free tool for creating electrical diagrams.

Early Vision

The project was created to provide a free, open-source alternative for designing electrical schematics and diagrams. From the start, it was designed to be:

  • Free and open β€” Licensed under GNU/GPL
  • Cross-platform β€” Supporting Windows, macOS, and Linux
  • Flexible β€” Extensible for various uses beyond electrical work
  • Community-driven β€” Open for contributions from users worldwide

Early Development (2008-2013)

Growing Popularity

During this period, QElectroTech grew steadily as users discovered its capabilities:

  • Released multiple versions (0.1 through 0.6+)
  • Expanded element libraries with community contributions
  • Established a multilingual interface (French, English, German support)
  • Built an active international user community

Founder Stewardship

Xavier and Benoit guided the project's technical direction, making architectural decisions that would shape QET for years to come.


Transition to Community Leadership (2013+)

Founders' Departure

Around 2013, Xavier and Benoit stepped back from active development, having established a solid foundation and community for the project.

New Era Begins

"Following this period, new developers and contributors took over the project and kept it alive." The project transitioned from being led by its founders to a collaborative, community-driven model.

Sustained Growth

The new team of developers maintained the project's momentum:

  • Continued releasing stable versions
  • Expanded the element collection (grew to 8,000+ symbols)
  • Improved performance and features
  • Expanded platform support (AppImage, Flatpak, Snap, aarch64/arm64)
  • Maintained and expanded translations

Modern Era (2022-Present)

Recent Releases

Version 0.7.0 - 0.8.0 (2022)

  • Consolidation and stabilization following earlier development

Version 0.9.0 (January 6, 2024)

  • Major speed improvements across launch, project opening, and functions
  • DXF import integration directly in the element editor via dxf2elmt
  • HDPI scaling support
  • Collection expanded to 8,274 elements across 1,097 categories

Version 0.100 (January 25, 2024)

  • Terminal Strip and Terminal Strip Editor support
  • Photovoltaic example projects
  • 8,000+ symbols in collection
  • Enhanced export/print handling
  • Improved rotation, flip, and mirror operations
  • Better wiring and conductor behavior

Current Development

  • Nightly builds available for cutting-edge features
  • Qt6 port in active development for modern framework support
  • Planned Version 0.100.1 or 0.200.0 with Qt6 migration

Community Today

Global User Base

QElectroTech now serves:

  • Individual hobbyists creating personal projects
  • Educators teaching electrical design and engineering
  • Students learning circuit design and electrical concepts
  • Professional electricians creating industrial diagrams

Active Community

  • 3,747+ registered users on the forums
  • 21,856+ forum posts across 2,959 discussion topics
  • Multilingual support β€” French, English, German, and more
  • Active GitHub β€” Continuous development and community contributions
  • Regular releases β€” Stable versions with ongoing improvements

Community-Created Content

  • 8,000+ electrical symbols in the element collection
  • User-contributed elements and libraries
  • Shared projects and tutorials
  • DXF import capabilities
  • External tooling built on the open XML formats (e.g. qet_tb_generator)

Key Achievements

βœ… Sustained for 18+ years (2007-2026)
βœ… Transitioned from single-team to community-driven project
βœ… Grew to 3,700+ active users
βœ… Built 8,000+ symbol library
βœ… Supports 3+ platforms and multiple languages
βœ… Maintained through major framework upgrades (Qt5 β†’ Qt6)


Technical Evolution

Framework & Libraries

  • Qt5 β€” Primary framework for versions 0.1-0.100
  • Qt6 migration β€” Active work on modernizing the codebase
  • SVN β†’ Git β€” Repository moved to GitHub for community collaboration

Platform Expansion

From basic Windows/Linux/macOS support to:

  • AppImage, Flatpak, Snap packages
  • aarch64 and arm64 architecture support
  • Better cross-platform compatibility

Feature Growth

From basic diagram drawing to:

  • Element libraries (8,000+ symbols)
  • DXF import/export
  • Terminal strip management
  • A headless command line for export and batch work
  • Custom element creation
  • Multi-diagram projects

QET 2.0 Refactoring Initiative

As QElectroTech matured, accumulated technical debt from the original architecture needed addressing. In 2012, after the original creator's departure, Joshua and subsequent developers recognized the need for a comprehensive refactoring:

The Challenge: Spaghetti code, poor modularity, and band-aid solutions had accumulated over years of development.

The Solution: QET 2.0 β€” A major architectural redesign addressing:

  • Code modularity β€” Decouple into distinct, well-separated modules
  • Action management β€” Centralize scattered QActions with an ActionPool singleton
  • File formats β€” Modernize from flat XML to structured, efficient formats
  • Persistence layer β€” Abstract serialization from domain logic
  • Conductor system β€” Introduce electrical potential as a first-class concept

File Format Evolution:

  • Elements: .elmt β†’ .selmt (with proper SVG namespace, direct SVG import)
  • Projects: .qet β†’ Zipped structure with SQLite database for metadata
  • Structure: Separate folders for images, elements, title blocks with UUID-based cross-referencing

Additional Improvements:

  • Element prefix system standardization
  • Intelligent auto-numbering with formula support
  • Enhanced cross-reference (xref) system
  • Text rendering modernization (points β†’ pixels)
  • Simplified independent text handling

This refactoring represents the project's commitment to long-term maintainability and enabling external contributors to work effectively with the codebase.


Future Direction

QElectroTech continues to evolve with:

  • Qt6 framework modernization for long-term maintainability
  • Performance improvements for large projects
  • Enhanced element libraries with community contributions
  • Expanded scripting capabilities for automation
  • Better multi-user workflows for team collaboration

See Development Roadmap for current initiatives and planned features.


The Open Source Spirit

What makes QElectroTech unique is its journey from a student project to a thriving, globally-maintained open-source initiative. The transition from Xavier and Benoit's stewardship to community leadership demonstrates the power of open-source development: once the foundation is solid, the community takes it forward.

Today, QElectroTech is a testament to collaborative development, with volunteers worldwide contributing code, translations, elements, and support.


Want to Join the Story?

Learn how you can contribute to QElectroTech's future! Whether you're reporting bugs, creating elements, improving documentation, or writing code, you can be part of the next chapter.


Quick Stats

Metric Value
Founded 2007
First Release March 9, 2008
Current Version 0.100 (Jan 2024)
Community Users 3,747+
Forum Posts 21,856+
Elements/Symbols 8,000+
Supported Platforms Windows, macOS, Linux
License GNU/GPL
Development Years 18+ years
Getting Started

Home

🌐 Languages β€” English Β· FranΓ§ais Β· Deutsch

Downloads

Windows without admin rights β€” the portable archive, no installer

Quick Start Guide

User Manual

FAQ

Tips & Tricks

Guides

Conductors β€” wire properties, what feeds which export, cables, and hops where wires cross

Wires per terminal β€” limit the wires on a terminal, chain wiring instead of stars

Printing and exporting β€” paper, PDF, images, and what each path does differently

Linking elements β€” master, slave, terminal

PLC modules β€” I/O tables and linking a wire to a specific point

Using the element editor β€” drawing tools, saving, checks

Generic devices β€” a quick box symbol with terminals on any side, made by a wizard (pending)

Grid size and element size β€” why symbols aren't all the same scale, and scaling one without leaving the grid

Preferences reference β€” what each settings page does

Saving and loading settings β€” your whole setup in one file, to copy or keep

Keyboard-only control β€” mouseless QET, and what still needs a mouse

Mouse modifiers β€” what Shift, Ctrl and Alt change while you drag

3D mouse β€” SpaceMouse pan, zoom and buttons

Aligning items β€” snap symbols back to the grid, or line them up

Pictures on a sheet β€” labels, crop, transparency, what they cost in the file

Arcs and curved wires β€” the Arc tool, pulling an arc in or out, rounding a corner with a fillet, dashed arcs for lighting layouts

Grouping items β€” select, move and copy several items as one

Finding your place on a sheet β€” go to a cell like B13 or 4-B7, keep the headers in sight, show the cell limits, zoom and pan

Showing and hiding kinds of items β€” hide texts, wire numbers, shapes, pictures, tables or cross-references on every sheet

Drawing faster β€” place without dragging, the S shortcut bar, command search, gestures

Customising QElectroTech β€” keys, toolbar size and contents, the gesture ring (partly pending)

Managing collections β€” folders, writability, building your own shortlist

Templates β€” reusable multi-element blocks, placed by double-click or drag

Search & Replace β€” bulk property changes

Building a nomenclature query β€” the BOM/summary table builder

Linking wires across pages β€” sheet reports

Variables & formulas β€” %f, %{label}, sequences

Auto-numbering β€” schemes, sequences, freezing

Terminal strips β€” strips, levels, bridges

Title block templates β€” the .titleblock format

Importing EPLAN parts (.edz) β€” EPLAN Data Portal

DXF import & export β€” two unrelated features, one format; command-line export and layers

The project database β€” the in-memory SQLite cache

File formats
Elements XML
Project XML
Development

Building from Source

Contributing Code

Automating QET β€” CLI, XML formats, external tools

CLI Reference β€” command line usage

JavaScript Scripting β€” --run, geometry editing, undo

MCP server β€” let an AI assistant read, verify and edit projects

Connecting an AI assistant β€” setup for Claude, Copilot, Gemini, Codex, Cursor, LM Studio

Script buttons β€” stored scripts with an icon, by hand or by an assistant

Live mode β€” an assistant working in the open project while you watch

Macro recorder β€” record a task by hand, for an assistant to script

Development Roadmap

Vision β€” proposal, under discussion

Developer Tools

About

Features

History

Community

License

Contributing to this Wiki

Clone this wiki locally