Cortical Areas
Cortical areas are the fundamental building blocks of your genome. Each cortical area is a 3D volume of neurons that processes information, stores patterns, or interfaces with the external world.
What is a Cortical Area?
A cortical area is a structured group of neurons organized in a 3D grid (measured in voxels). Each voxel can contain one or more neurons. Cortical areas:
- Process incoming signals from connected areas
- Generate outputs based on their internal state and connections
- Learn and adapt through synaptic changes
- Specialize in different types of processing
Types of Cortical Areas
Brain Visualizer supports several types of cortical areas, each with specific purposes:
Input Processing Unit (IPU)
![]()
Purpose: Receive data from external sources (sensors, cameras, etc.)
Characteristics:
- Color: Dark Gray
- Interface: Connected to embodiment devices
- Configuration: Based on device templates (vision, audio, text, etc.)
- Dimensions: Determined by device type and count
Common Uses:
- Visual input from cameras
- Audio input from microphones
- Sensor data (temperature, distance, etc.)
- Text or symbolic input
- Controller input (keyboard, gamepad)
Output Processing Unit (OPU)
![]()
Purpose: Send data to external actuators (motors, displays, etc.)
Characteristics:
- Color: Orange
- Interface: Connected to embodiment devices
- Configuration: Based on device templates (motor, display, etc.)
- Dimensions: Determined by device type and count
Common Uses:
- Motor control (movement, rotation)
- Display output (text, graphics)
- Audio output (speech, sounds)
- Control signals (on/off, analog values)
Memory
![]()
Purpose: Store and recall patterns for learning and reference
Characteristics:
- Color: Dark Red
- Function: Pattern recognition and recall
- Behavior: Learns associations between inputs
- Dimensions: User-configurable
Common Uses:
- Short-term memory
- Long-term pattern storage
- Associative recall
- Context maintenance
Custom (Interconnect)
![]()
Purpose: Internal processing and transformation
Characteristics:
- Color: Blue
- Function: General-purpose neural processing
- Behavior: Transforms inputs to outputs
- Dimensions: User-configurable
Common Uses:
- Feature extraction
- Pattern transformation
- Decision making
- Intermediate processing layers
- Custom neural algorithms
Core
Purpose: System-level processing (advanced)
Characteristics:
- Color: Dark Blue
- Function: Specialized system operations
- Behavior: FEAGI internal processing
- Dimensions: System-defined
Note: Core areas are typically created by FEAGI itself and rarely created manually.
Creating Cortical Areas
Method 1: Quick Access (IPU/OPU)
For input and output areas:
- Hover Inputs or Outputs on the root scene top bar
- Click the + button
- Select a template (e.g., Vision, Motor)
- Configure:
- Device Count: How many instances (e.g., 2 cameras)
- Unit ID: Unique identifier for the device
- Location: 3D position in genome
- Data Type: How data is encoded
- Click Add
The new area appears in both Circuit Builder and Brain Monitor.
Method 2: Create from Circuit Builder
For all types:
- Right-click empty space in Circuit Builder
- Select Create Cortical Area
- Choose type:
- Click Input for IPU
- Click Output for OPU
- Click Interconnect for Custom
- Click Memory for Memory
- Configure properties
- Click Add
Method 3: Clone Existing Area
Duplicate an area with similar settings:
- Right-click existing cortical area
- Select Clone
- Modify name and properties as needed
- Click Clone
Configuring IPU/OPU Areas
Templates
IPU and OPU areas use templates that define their structure:
Common IPU Templates:
- Vision: Camera input (2D image data)
- Audio: Microphone input (frequency bands)
- Text Input: Character or word data
- Generic Sensor: Numerical sensor data
- Controller: Button/joystick input
Common OPU Templates:
- Motor: Servo or motor control
- Display: Text or graphics output
- Audio Output: Sound generation
- Generic Actuator: Numerical control signals
Device Count
Specifies how many instances of the device exist:
- 1 camera = single vision IPU
- 2 cameras = stereo vision (two separate IPUs or one multi-unit IPU)
- 4 motors = four separate motor OPUs
Each count creates the appropriate cortical structure.
Unit ID
Unique identifier connecting the cortical area to physical/virtual hardware:
- Must match the ID used by your embodiment controller
- Allows FEAGI to route data to/from correct devices
- Required for IPU/OPU areas
Data Type Configuration
Determines how data is encoded:
For IPU (Input):
- Signed Percentage: Normalized -100% to +100%
- Unsigned Percentage: Normalized 0% to 100%
- Absolute Values: Raw numeric values
- Binary: On/off states
For OPU (Output):
- Similar encoding options
- Must match what the embodiment expects
Frame Handling
For vision IPU areas:
- Single Frame: Process one frame at a time
- Frame Stack: Stack multiple frames for temporal awareness
- Differential: Process frame-to-frame changes
Positioning
How multi-unit data is arranged spatially:
- Stack XYZ: Stack along specific axis
- Grid: Arrange in 2D grid
- Linear: Arrange in line
Configuring Custom/Memory Areas
Dimensions
Set the 3D size of the cortical area:
- X, Y, Z: Dimensions in voxels
- Total neurons: X × Y × Z × neurons per voxel
- Larger areas = more neurons = more processing capacity
Example:
- 10 × 10 × 10 = 1,000 voxels
- If 1 neuron per voxel = 1,000 neurons
- If 10 neurons per voxel = 10,000 neurons
Position
3D location in the genome:
- X, Y, Z: Coordinates in 3D space
- Position is organizational (doesn't affect processing)
- Group related areas nearby for clarity
Neurons Per Voxel
How many neurons exist in each voxel:
- 1: Single neuron per voxel (typical)
- Higher values: Multiple neurons per voxel (advanced)
- Affects total neuron count and processing
Connectivity Rule
Default connectivity rule for connections:
- Pattern: Defines connection structure
- Parameters: Shape and density
- Can be overridden per connection
See [Connectivity Rules](connectivity rules.md) for details.
Viewing and Editing Properties
Cortical Area Details Window
Right-click area → Details opens the comprehensive Cortical Area Details window.
This window provides complete control over:
- Basic properties (name, dimensions, position)
- Neuron firing parameters (threshold, leak, refractory period)
- Memory parameters (lifespan, consolidation)
- Post-synaptic potential settings (connection strength)
- Neuron coding (for IPU/OPU areas)
- Monitoring and visualization settings
- Connection management (afferents, efferents, recursive)
- Delete and reset operations
For complete documentation of all features and parameters, see:
- Cortical Area Details Window - Complete guide to all properties
Quick Access:
- Right-click cortical area → Details
- Double-click cortical area node
- Quick Menu → Details
Organizing Cortical Areas
Naming Conventions
Use clear, descriptive names:
Good:
- "Vision_Left_Camera"
- "Motor_Front_Left_Wheel"
- "Memory_Visual_Patterns"
- "Custom_Edge_Detection"
Avoid:
- "CA_001"
- "Untitled"
- "Test"
Grouping with Regions
Organize related areas into brain circuits:
- Select cortical areas to group
- Right-click → Create Region
- Name the region descriptively
- Areas move into the new region
See Brain Circuits for more details.
Spatial Organization
In Brain Monitor (3D), position areas logically:
- Inputs: One side or top
- Processing: Middle layers
- Memory: Central or dedicated zone
- Outputs: Opposite side from inputs
Organized layout aids understanding and debugging.
Connecting Cortical Areas
Cortical areas become functional when connected:
Creating Connections
- In Circuit Builder: Drag from output port to input port
- Quick Connect: Right-click → Quick Connect → choose destination
- Mapping Editor: Specify connectivity rule and parameters
See Mapping Connections for complete guide.
Connection Types
- Feedforward: Input → Processing → Output (typical)
- Feedback: Higher layer → Lower layer (modulation)
- Lateral: Same-level areas (integration)
- Recursive: Area to itself (temporal)
Best Practices
- Start Simple: Connect inputs to outputs with one processing layer
- Test Incrementally: Add connections and test behavior
- Avoid Over-Connection: Not everything needs to connect to everything
- Use Appropriate Connectivity Rules: Match connection patterns to function
- Document: Name connections and regions to clarify intent
Common Operations
Renaming
- Right-click area → Details
- Edit the name field
- Press Enter or click away to save
Moving (2D Position)
In Circuit Builder:
- Drag the node to new position
- Position saves automatically after brief delay
Via Menu:
- Right-click → Relocate 2D
- Enter exact X, Y coordinates
Moving (3D Position)
Via Menu:
- Right-click → Move 3D
- Drag colored arrows in 3D view
- X=Red, Y=Green, Z=Blue
Via Properties:
- Right-click → Details
- Edit position X, Y, Z values
- Click Apply
Resizing
For Custom and Memory areas:
Via 3D Gizmo:
- Right-click → Resize 3D
- Drag corner/edge handles in 3D view
Via Properties:
- Right-click → Details
- Edit dimensions X, Y, Z
- Click Apply
Note: IPU/OPU dimensions are determined by templates and cannot be directly resized.
Cloning
Create a copy with similar settings:
- Right-click → Clone
- Modify name (required)
- Adjust position/dimensions if needed
- Click Clone
Connections are NOT cloned (area starts unconnected).
Resetting
Clear all neural state (neuron values, learning):
- Right-click → Reset
- Confirm the reset
- Area returns to initial state
Useful for:
- Starting fresh after testing
- Clearing corrupted state
- Beginning new training
Deleting
Remove a cortical area permanently:
- Right-click → Delete
- Review confirmation (shows affected connections)
- Confirm deletion
Warning: This removes the mappings to and from the area. Ctrl+Z (Cmd+Z on macOS) restores the area and those mappings for this genome session. The restored area gets a new id. Learned synapse weights are not restored. Core areas, interconnect areas, classifiers, and circuits cannot be restored this way.
Monitoring Cortical Area Activity
In Brain Monitor
Active cortical areas light up:
- Bright spots: Highly active neurons
- Patterns: Spatial activity distribution
- Changes: Real-time updates
Hover over area to see its connections.
Activity Indicators
- Color Intensity: Firing rate
- Spatial Patterns: Which voxels are active
- Temporal Patterns: How activity changes over time
Debugging
If area isn't showing expected activity:
- Check Connections: Verify inputs are connected
- Check Input Activity: Ensure upstream areas are active
- Check Mappings: Verify connectivity rules are correct
- Check Data Flow: Trace from inputs through processing
- Check Configuration: Verify area settings are correct
Performance Considerations
Neuron Count Limits
Your genome has a maximum neuron count:
- Check current vs max in top toolbar
- Creating large areas consumes budget
- Balance size vs. quantity
Planning Capacity
Before creating areas:
- Estimate neurons needed per area
- Calculate total neurons
- Ensure within genome limits
- Adjust dimensions if needed
Optimization Tips
- Start small: Create minimal areas, expand if needed
- Use templates efficiently: IPU/OPU sizes match data dimensions
- Memory areas: Size based on pattern storage needs
- Custom areas: Optimize for actual processing requirements
Troubleshooting
"Can't create IPU/OPU"
- Ensure template is selected
- Verify unit ID is unique
- Check neuron count limit isn't exceeded
"Area not visible"
- Use Fit All in Circuit Builder
- Hover Inputs, Outputs, or Circuits and select the area
- Check area is in expected region
"No activity showing"
- Verify area has input connections
- Check upstream areas are active
- Ensure burst rate > 0 Hz
- Verify FEAGI is processing
"Can't resize area"
- IPU/OPU dimensions are template-defined
- Check if area type allows resizing
- Use Properties window for precise control
"Neuron count exceeded"
- Reduce area dimensions
- Delete unused areas
- Increase genome neuron limit (if possible)
Related Topics
- Cortical Area Types - Detailed type information
- Mapping Connections - Connecting areas
- [Connectivity Rules](connectivity rules.md) - Connection structures
- Brain Circuits - Organizing areas
- Circuit Builder - 2D editing interface
- Brain Monitor - 3D visualization
- Quick Menu - Context operations