Ctrl + K
Website

Command Reference

Illuminator has a built-in command system accessible through the console. Commands can also be stored in script files and replayed with execute. Every command supports a help argument for inline documentation.

load Data

Loads a graph from a file. Supports native .ilu files and CSV/TSV with edge definitions.

load <path> target=(tail, head, [type,] name) [delimiter="<char>"] [header=true|false] [attributes=[(source, type, name), ...]]
ParameterRequiredDescription
pathYesFile path. Extension determines format: .ilu, .csv, or .tsv
targetCSV/TSVEdge definition tuple. tail and head name the source and target columns: either header names (when header=true, the default) or 0-based column indices (when header=false). type is the attribute type (default: string). name is the node identifier attribute name.
delimiterNoColumn separator. Defaults to , for CSV and \t for TSV. Accepts tab, \t, or a single character.
headerNoDefaults to true: first line is a header with column names. Set header=false when the file has no header; then tail, head, and each source in attributes must be non-negative integer column indices (first column is 0).
attributesNoList of additional edge attribute definitions: (source_column, type, name)

Attribute Types

float, int32, uint32, string, shared_string

Examples

// Load a native Illuminator file
load my_graph.ilu

// Load a CSV with edge definitions
load edges.csv target=(source, target, name)

// Load a TSV with a custom delimiter and edge attributes
load data.tsv target=(from, to, string, id) delimiter=tab attributes=[(weight, float, weight), (type, string, category)]

// No header row: columns 0 and 1 are endpoints, column 2 is an edge weight
load edges.csv header=false target=(0, 1, name) attributes=[(2, float, weight)]
import Data

Adds attributes to an already-loaded graph by joining a CSV/TSV file against an existing node attribute.

import <path> target=(graph_attr, csv_column) [delimiter="<char>"] [header=true|false] attributes=[(source, type, name), ...]
ParameterRequiredDescription
pathYesPath to a .csv or .tsv file
targetYesJoin key: graph_attr is the name of an existing node attribute. csv_column is either a header name (header=true) or a 0-based column index (header=false).
delimiterNoColumn separator (same options as load)
headerNoDefaults to true. When header=false, the file has no header row and csv_column plus each attribute source must be a non-negative integer index.
attributesYesOne or more (source_column, type, attribute_name) tuples to import

Examples

// Import score and label from a CSV, matching on the "name" attribute
import metadata.csv target=(name, node_id) attributes=[(score, float, score), (label, string, label)]

// No header: join on graph "name" to column 0, import column 1 as score
import scores.csv header=false target=(name, 0) attributes=[(1, float, score)]
select Selection

Manipulates the current node selection. There are four variants for set operations:

CommandDescription
selectReplaces the selection (clears first for where queries)
+selectAdds matching nodes to the existing selection
-selectRemoves matching nodes from the selection
^selectIntersects — keeps only nodes in both the current selection and the query result

Operations

OperationArgumentsDescription
allNoneSelect all nodes
invertNoneInvert the current selection
none / clearNoneClear the selection
expand<depth>BFS expansion of the selection by the given depth
where<expression>Select nodes matching a logical expression (see Query Language)

Examples

select all
select invert
select none
select expand 3

// Select nodes where the "score" attribute is above 0.5
select where (score > 0.5)

// Add nodes with ID between 5 and 10 to the current selection
+select where (nodeID > 5 && nodeID < 10)

// Remove nodes matching a name
-select where (name == "Alice")

// Keep only nodes that are also high-scoring
^select where (score >= 0.9)
set Style

Applies a style change to the current selection.

set <target> <property> <value>

Node Properties

PropertyValueDescription
size0–63Node radius
shapeIndexShape index (circle, square, etc.)
rotation0–360Rotation in degrees
colourHexNode fill colour (e.g. FF0000)
border_size0–63Border thickness
border_colourHexBorder colour

Edge Properties

PropertyValueDescription
width0–63Edge line width
colourHexEdge colour

Label Properties

PropertyValueDescription
contentAttribute nameWhich string attribute to display as label text
anchoredge / centerWhere the label is anchored relative to the node
size0–63Font size
distance0–63Distance from the node
offset_rotation0–360Angle of the offset direction
label_rotation0–360Rotation of the label text itself
colourHexText colour
highlight_colourHexColour when highlighted

Examples

set node size 20
set node colour 3fb950
set node shape 1
set node border_size 3
set node border_colour 000000

set edge width 2
set edge colour 58a6ff

set label content name
set label anchor center
set label size 12
set label colour ffffff
map Style

Interpolates a style property across the selection based on a numeric attribute. Values are linearly mapped from the attribute range [min, max] to the style range [value_a, value_b].

map <target> <property>[.channels] <attribute> <min> <max> <value_a> <value_b>

The optional .channels suffix lets you target specific colour channels: r, g, b, a, or combinations like rgb, rgba. Without a suffix, all channels are affected.

Mappable Node Properties

PropertyValue Range
size0–63
border_size0–63
colour[.channels]Hex colours
border_colour[.channels]Hex colours

Mappable Edge Properties

PropertyValue Range
width0–63
colour[.channels]Hex colours

Mappable Label Properties

PropertyValue Range
size0–63
colour[.channels]Hex colours
highlight_colour[.channels]Hex colours

Examples

// Map node size from score range [0, 1] to sizes [5, 40]
map node size score 0 1 5 40

// Map node colour from blue to red based on a "temperature" attribute (0-100)
map node colour temperature 0 100 0000ff ff0000

// Map only the red channel of node colour
map node colour.r intensity 0 255 000000 ff0000

// Map edge width based on a weight attribute
map edge width weight 0 10 1 8

// Map label size by importance
map label size importance 0 100 8 32
create Selection

Creates new objects from the current selection.

create subset <name>

Creates a named subset from the currently selected nodes. Subsets can be recalled in the Subset window to quickly restore selections.

Example

select where (group == "cluster_a")
create subset cluster_a
execute Scripting

Runs a script file containing one command per line.

execute <path>

Each line is processed as if typed into the console. Text after // is treated as a comment. Empty lines are skipped. If any line throws an error, execution stops and the error is reported with the line number.

Example

execute scripts/setup.txt

You can also run scripts from Script > Execute... in the menu bar, which opens a file picker. Recently run scripts appear in the Script menu for quick re-execution.

See Script Files for syntax details and a full example script.