User manual › ICoreBlocks — the user manual
kind: manual#manual#getting-started#window#workflow

ICoreBlocks — the user manual#

ICoreBlocks is a block-diagram modelling application: you draw a system as blocks joined by signal links, run it over a stretch of simulated time, read the results on a scope or in the command window, and — when the model is right — export it as source code for another target.

This manual is about using the application. It assumes you have it installed and open, and nothing else.

The parts of the window#

PartWhat it is for
CanvasThe drawing surface, one per open tab. Blocks are placed here and joined with links. It is the only part that holds your model.
Library navigatorThe catalogue of blocks you can place, arranged by family. Hovering a block shows the same description you will see in its configuration dialog.
Subsystem navigationMoves you between levels of the model. The top level is called Home; a subsystem block opens a level of its own beneath it.
Command windowA console. It evaluates arithmetic, calls the built-in functions, and runs the commands listed in Command glossary — console commands, verbs, functions.
ICore Script IDEWhere .icore scripts are written, run and fixed — an editor with problems underlined before a run, a Problems list, the workspace's Variables and Run Line. See The ICore Script IDE — writing, running, debugging and fixing .icore scripts.
TerminalA real terminal whose shell starts in the project folder. Type claude or codex there and a coding agent can read and edit the open model — see Coding agents — letting Claude Code, Codex and others edit your model.
ToolchainsWhich installed programs ICore Blocks runs — the Python, C/C++ compilers, Rust, Java, MATLAB, GHDL, Icarus Verilog, matiec and git that check exported code, compile C Code blocks and run the Git panel — and the place to pick a different one. See Toolchains — choosing the Python, compilers and simulators ICore Blocks runs.
Model configurationThe solver settings a run obeys — start and stop time, solver type, sampling. See Running a simulation — solver settings, sampling, starting and stopping.
DiagnosticsWhat a run reports: warnings, errors, and the messages explained in Reading results — scopes, charts, stored values, and what a run tells you.
Code exportTurns the model into source for one of the supported targets.
Account (the Account button on the toolbar, or Help ▸ Account…)Who is signed in, what the licence covers, and this machine's seat — with a link out to the portal for everything else: other machines, seats, invoices, organisation admin. Sign out is here too, and it releases this machine's seat, so signing out frees it for another machine. The app then asks you to sign in, which is how you switch to a different account without restarting — and if you dismiss that, the same button now reads Sign in and brings it back.
Licence bannerA strip just under the editor's top panel that appears only when the licence needs saying something: working offline on an expired token, with the days remaining, a lapsed one, or no licence at all. It is never modal and it is not an error.
Update bannerA strip just under the editor's top panel — below the licence banner when both show — that appears when a newer build is available. Click it for the update dialog. ICore Blocks checks by itself shortly after it starts and then once a day; Help ▸ Check for Updates… checks right away and always answers — a newer version, "You are up to date", or why it could not ask. On a Mac a copy you can write — in ~/Applications, or one you dragged into /Applications yourself — installs the update and replaces itself. A copy another account installed shows Download instead: ICore Blocks fetches and verifies the update, then opens the disk image so you can quit, drag it onto Applications and choose Replace. On Windows the Microsoft Store installs updates for you; when one is waiting the dialog offers Open in Microsoft Store.

A block's own configuration dialog carries an information panel describing that block — its ports, its parameters and what it computes. That description is the same text shown in the library navigator and on the block's page in Block catalog — every library block, so there is only ever one description to read.

⚠ If no licence is resolved, ICore Blocks still opens — in no-licence mode. Since 2026-08-24 the sign-in dialog at startup can be dismissed: cancel it and the application opens anyway. Your models open, edit and save normally, and every block is there. What is unavailable is the licensed half — running a simulation, exporting code, loading somebody else's blocks, the SDK. The licence banner sits under the editor's top panel saying exactly that and does not go away, and each refusal names itself rather than failing quietly. Sign in at any time from Help ▸ Account… or the Account button and everything switches on without a restart.

(This paragraph used to say "nothing is restricted", which was true only while a build with no licence could not start at all. It can now, so the restrictions are real and reachable.)

The shortest path to a plotted result#

The quickest way to see the application do something is to open one of the worked examples that ship with it rather than to start from an empty canvas.

  1. Open a template — the catalogue is in Template catalog — every .icore, and the application lists it for you:

    `` $ ICoreBlocks --console "templates" 49 template(s): Control Systems subsystems/arithmetic_and_reductions Arithmetic and Reductions The two-input arithmetic blocks, the two gains, and the blocks that reduce a whole vector to one number. examples/Closed_Loop_Speed_Control Closed-Loop Speed Control A proportional controller driving a first-order plant, with unity feedback. … subsystems/first_order_lag First-Order Lag A step into a 1/(s+1) transfer function, watched on a scope. … ``

  2. Open one. It becomes a new project of its own, so the original template is never modified:

    `` $ ICoreBlocks --console "openTemplate examples/Closed_Loop_Speed_Control" opened 'Closed-Loop Speed Control' as a new project: …/Documents/ICore Blocks/Closed-Loop Speed Control ``

  3. Press Run. The scope in the diagram fills in as the run advances.
  4. Read the result. The scope plots it; Reading results — scopes, charts, stored values, and what a run tells you covers the other ways to get at the numbers.

From there, Building a diagram — blocks, links, subsystems, saving describes changing the model or starting one from nothing.

Doing it from the command window instead#

Everything above has a console equivalent, and the console is also a calculator in its own right. A response you can check by hand:

$ ICoreBlocks --console "G = tf([1],[1 1]); y = step(G, 5, 6); y.values()"
[[0], [0.632121], [0.864665], [0.950213], [0.981684], [0.993262]]  # Matrix of Double

Those are the samples of 1 − e⁻ᵗ at t = 0, 1, 2, 3, 4, 5 — the step response of 1/(s+1). Command glossary — console commands, verbs, functions is the full roster of commands and functions.

The --console "<command>" form used throughout this manual runs one command and exits, which is why the examples can be pasted and checked. Inside the application you type the same text into the command window without it.

Where to go next#

Real runs#

Every transcript on this page is a real run rather than an illustration. Binary ICoreBlocks.app, built 2026-09-25 23:58 (source at approximately commit 1dac24c5), re-run 2026-09-26; one process per line, HOME=<scratch> ICoreBlocks --console "<line>", with the startup lines removed and paths under that scratch home shortened to …. Re-run any line above to check this page against the program.