Version 0.1.0-dev • Windows 10/11 x64 • 28 September 2026
RayyanCAD is in the development stage. This release supports schematic drawing, editing, saving, printing and PDF output. Several visible menu commands are placeholders for future development. Read the supported-feature boundaries below.
Extract the entire release ZIP to a temporary folder. Do not run files inside the ZIP viewer. Double-click install.cmd. The default destination is %LOCALAPPDATA%\Programs\RayyanCAD; normal per-user installation needs no administrator access. Start RayyanCAD from the Start menu or the installed Run-RayyanCAD.cmd. Open the User Manual shortcut for this offline document.
For a custom destination, run PowerShell in the extracted release folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install.ps1 -InstallRoot "C:\CAD\RayyanCAD"
The installer verifies each payload file against the supplied SHA-256 manifest, copies the application and bundled InternetSQL 1.25 SDK, and initializes an empty parts database. The database home is <install root>\isqldbhome; its data is under isqldbhome\db. It sets the user environment variable RAYYANCAD_ISQL_HOME and adds <install root>\bin and <install root>\isqldbhome\bin to the user PATH. Open a new terminal after installation. The launcher also sets these variables for its own process, so it works immediately without signing out.
Installer options: -EnvironmentScope User (default), Machine (administrator required), Process (temporary settings for that PowerShell process), or None (no environment changes). -NoShortcut suppresses Start menu shortcuts. Use a writable install location; database files are stored there. This package includes the x64 SDK release dated 2026-09-20.3, checked against available C:\isql-rel* releases when the package was built. See RELEASE.json for exact hashes.
The CAD resolves an explicit RAYYANCAD_ISQL_HOME first, then an isqldbhome directory beneath its install root. Do not point that variable to another database unless you intend to open it. Start with Run-RayyanCAD.cmd to use this installation.
RC filter.R1 and Value to 10k. Confirm the dialog.C1, Value 100nF.INPUT, and click to place the annotation. Repeat with OUTPUT.My RC filter.rycad.You can also open the installed examples\rc-filter.rycad and save a copy under your own filename. This is a drawing tutorial; the release does not yet calculate electrical connectivity or simulate the filter.
File > New Project starts a project; Ctrl+O opens a .rycad file. Ctrl+S saves; Save Project As makes a copy under a new filename. An asterisk in the title marks unsaved changes. Save prompts protect unsaved work when replacing or closing the project. Keep backups of important drawings before testing a development build.
A project can hold multiple named pages. Ctrl+Shift+N creates another page. Schematic > Page Properties renames the active page. Closing a page window keeps the page in the project; use Schematic > Open Page to reopen it. Window > Cascade and Tile arrange open page windows. Click a page to make it active before editing or printing. Project saves include all pages, including pages whose windows are closed. Schematic project files and the parts database are separate: back up both.
This release writes project format 3 and reads formats 1, 2 and 3. Components, labels and buses require the current reader. Older applications may not understand them. The installed docs\PROJECT_FORMAT_V3.md describes the file format.
The floating Parts Palette opens automatically. Drag its title bar to move it and scroll within it to reach additional icons. Click an icon, then click the active page to place the chosen item. A symbol can be placed repeatedly until Esc. Close the palette with X; reopen through View > Parts Palette or Parts > Symbol Palette. Icons are disabled when no schematic page is open.
The palette has Wire, Bus, Junction and Label tools, and these 31 symbols:
| Family | Symbols |
|---|---|
| Passive | Resistor, capacitor, polarized capacitor, coil/inductor, ferrite loop, transformer |
| Diode | Diode, LED, Zener diode |
| Transistor | NPN BJT, PNP BJT, IGBT, N-channel MOSFET, P-channel MOSFET, N-channel JFET |
| Switching | SCR, triac, switch, fuse |
| IC and timing | Generic 8-pin IC, op amp, crystal |
| Power | Voltage source, GND, earth ground, VCC, VDD |
| Connections | Two-pin connector, page connector IN, page connector OUT, antenna |
Press C for the component dialog to choose a symbol, reference and value before placement. A blank reference permits automatic numbering. Press R to rotate a placement preview or selected components. References and values are editable text; they do not select manufacturer parts or simulation models. Check reference uniqueness yourself. Power and page connector labels currently describe the drawing; they do not automatically join nets across pages.
| Action | Control |
|---|---|
| Select | S; click an object |
| Multiple selection | Ctrl+click; or drag a box from empty space |
| Move | Drag selected objects with the Select tool |
| Delete | Delete key |
| Edit selected component or label | F2 |
| Rotate | R |
| Wire / bus / junction | W / B / J |
| Component / label | C / L |
| Finish or cancel preview | Esc or right-click |
| Undo / redo | Ctrl+Z / Ctrl+Y on the active page |
| Pan | P and drag, or middle-button drag |
| Zoom | Mouse wheel; View > Zoom In / Zoom Out / Zoom to Fit |
| Save / print | Ctrl+S / Ctrl+P |
Wire and bus tools snap to the grid and draw orthogonal segments. Click endpoints successively. Hold Shift to reverse the elbow direction. A bus is drawn thicker than a wire. To resize a straight segment, select it alone and drag an endpoint handle along its axis. Move and endpoint changes can be undone as one action. The junction tool toggles an explicit junction marker at the clicked position.
Moving a component or a wire does not stretch other attached-looking wires. Inspect and redraw adjoining segments after a move. Geometric crossings and labels do not yet produce a verified netlist. Undo/redo covers canvas edits on the active page; it is not a general history for database changes. Clipboard Cut/Copy/Paste commands are disabled in this release.
Activate the page to print. File > Print Page (Ctrl+P) opens the Windows printer dialog. Select your physical printer and set its paper size and orientation. File > Print Page to PDF uses Microsoft Print to PDF; choose a destination when Windows prompts. Enable that Windows optional printer if it is missing.
All drawing geometry on the active page is fitted to one sheet with margins, independent of the screen zoom and pan. Grid dots, selection handles and unfinished previews are omitted. Components, values, labels, buses and wires are included. Each command prints one active schematic page; repeat for other pages. Printing does not save or modify the project. Open a PDF after saving to check readability, especially for dense drawings. The HTML manual itself can be printed or saved as a PDF using your browser's Print command.
The reusable parts library is an embedded iSQL database with schema version 1. Parts > List Parts browses stored records; Parts > Find Part searches them. The database overview reports table information. The palette uses built-in symbol definitions. A row inserted into the library does not add a palette icon and cannot yet be placed as a database-linked component. Custom graphical symbol authoring, manufacturer-part placement, and the Create/Edit/Import/Export Part dialogs are future work. The following workflow creates and edits real library records using the included SQL shell while those dialogs are being developed.
Close other programs using the target library. In PowerShell, change to the CAD install root and choose a directory that does not exist:
powershell -NoProfile -ExecutionPolicy Bypass -File .\New-PartsLibrary.ps1 -LibraryHome "$env:USERPROFILE\Documents\MyRayyanParts"
The helper creates 15 tables, 16 indexes, schema metadata and 13 ID sequence rows. It refuses an existing directory to avoid overwriting data. Do not invoke initialize_parts_db.exe again on an initialized home; it is a fresh-schema tool, not a migration command. The helper does not change your default library.
For a newly created empty tutorial library, run this command ONCE from the install root (replace the path if you used another location):
.\isqldbhome\bin\isqlsh.exe -q -e -dbhome "$env:USERPROFILE\Documents\MyRayyanParts" -cmd .\examples\tutorial-parts.sql
The supplied SQL creates a fictional resistor catalog entry, two pins, a unit, category and source attribution. It advances the sequences it uses. Its IDs start at 1, so do not run it in an existing populated library or rerun it. Read the file first to see each statement. It is original demonstration data, not manufacturer specifications or a verified purchasing part. The final SELECT statements display the records for verification.
Open CAD with that library:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Open-PartsLibrary.ps1 -LibraryHome "$env:USERPROFILE\Documents\MyRayyanParts"
Use Parts > List Parts or Find Part and search for DEMO-R-10K. This launcher only changes the environment for the launched process. To return to the default library, close this instance and use Run-RayyanCAD.cmd.
Back up the library first. Open an interactive shell from the install root:
.\isqldbhome\bin\isqlsh.exe -dbhome "$env:USERPROFILE\Documents\MyRayyanParts"
Example SQL for the tutorial library:
use default;
select * from parts where part_id=1;
update parts set part_description='Tutorial resistor, nominal 10 kilo-ohm' where part_id=1;
select * from parts where part_id=1;
select * from pins where part_id=1;
For additional records, read the corresponding id_sequences.next_id, reserve an unused ID and advance it before another writer can use it. Perform manual authoring with one writer and CAD closed. Do not use the demonstration IDs in a populated database. Link related records using their numeric IDs. Escape apostrophes in SQL strings by doubling them, for example 'Driver''s IC'. Respect the fixed character lengths in the schema; keep text within them. Validate lengths, references and uniqueness yourself; the current application is not a complete library validator.
The complete field definitions are installed as docs\parts-schema.sql.
| Table | Purpose and relationships |
|---|---|
| schema_versions | Database schema version; do not edit to bypass a migration |
| id_sequences | Next available ID for each record family |
| part_categories | Category tree; parent_category_id links to another category |
| parts | Manufacturer number, manufacturer, description, category, revision, units, pin count, package, datasheet and review status |
| part_units | Units within a part; links part_id and optional symbol_id |
| pins | Pin number/name/type for a part and unit; physical measurements |
| symbols | Reserved custom-symbol metadata; not yet rendered by the palette |
| symbol_primitives | Reserved geometry records linked to symbols; rendering contract not implemented |
| packages | Mechanical package dimensions and review status |
| pads | Pads linked by package_id; dimensions, hole, layer and rotation |
| part_packages | Associates a part with one or more packages and ordering codes |
| part_sources | Source URL, license, attribution, usage classification and review date |
| part_provenance | Per-part facts and their source/revision/hash/review status |
| import_jobs | Import batch metadata reserved for the import workflow |
| import_staging | Candidate records and validation results reserved for imports |
Mechanical dimensions use integer micrometres (1000 = 1 mm); pad rotation uses millidegrees (90000 = 90 degrees). Record pin numbers as text so alphanumeric identifiers remain intact. For each real part, verify its exact ordering code, revision, pin mapping and dimensions against material you are entitled to use. Record the source and attribution in part_sources and part_provenance. Use a review status that distinguishes unreviewed information from independently checked data. No automated importer or license screening is provided in this build.
To share a library, close CAD and all iSQL tools, copy the entire library home to an archive, and include its source/licensing notes. Restore into a separate folder and open it with Open-PartsLibrary.ps1. Do not copy only individual table files while the database is open. Sharing a database library does not extend the built-in palette in this release.
Close RayyanCAD and all iSQL processes before updating. Back up your .rycad files and the entire isqldbhome folder. Run the new installer against the existing marked RayyanCAD installation. It refreshes packaged binaries and documentation, preserves the database, and skips initialization when its schema marker exists. An unrecognized nonempty destination is refused. There is no automatic schema migration in this development release. Keep a separate copy of custom scripts; packaged files may be replaced by an update.
For removal, first back up projects and libraries. Remove only this application's two directories from your Windows user PATH and remove RAYYANCAD_ISQL_HOME if it still points to this installation. Delete the RayyanCAD Start menu folder, then delete the dedicated install folder after checking your backups. Machine-scoped environment changes require administrator rights. Do not remove another product's iSQL directory or PATH entry.
installation-database.log. Use a writable local path and preserve the failed home for diagnosis. Do not reset a populated library.isql.cfg in the working directory can override the engine's database selection.Electrical rule checking, connectivity/netlists, bus membership, global power nets, cross-page resolution, simulation, PCB layout/fabrication, hierarchy, custom symbol editing and database-linked placement are not implemented in this package. Do not use a schematic drawing alone as evidence of electrical correctness.
Copyright (c) 2026 Muhammad Anisur Rahman and Rayyan Rahman, Fremont, CA, USA. The bundled InternetSQL SDK retains its own documentation and copyright notices. Microsoft Visual C++ runtime vcruntime140.dll is included beside the SDK tools; its Microsoft copyright is retained. Windows supplies the Universal C Runtime.