Skip to content

Integration with Biopac

Initial Setup

Note: To enable data streaming from SightLab to Acqknowledge, you need to activate the NDT Network Data Transfer protocol in AcqKnowledge (NDT is a licensed feature add-on).

  1. In AcqKnowledge, go to Display > Preferences > Networking.
  2. Select the checkboxes for "Enable network data transfer" and "Respond to auto-recovery requests".
  3. Restart the AcqKnowledge software to activate the Network Data Transfer.

This configuration only needs to be done once.

Enabling Biopac Integration in SightLab

GUI Version

  • You can send markers to Acqknowledge with the GUI version by using a checkbox.

Non-GUI Version

  • Set sl.SightLab(biopac=True) in the main SightLab instance.
  • This will send markers to Acqknowledge when you fixate on objects, including the name of the object.

Sending Custom Events to Biopac

You can set flags and send events to Biopac Acqknowledge at any time during your session:

sightlab.set_flag('something happened')

if sightlab.biopacFlag == True:
    sightlab.acqServer.insertGlobalEvent('something happened', 'stim', '')

Replace 'something happened' with your own event title.

Viewing Events in Acqknowledge

  1. Enable the events bar in Acqknowledge.
  2. You can also display the "Event Palette" from the dropdown window.
  3. After a session, events will appear on the timeline alongside physiological data.
  4. Click on events to see their corresponding names

Running Multiple Trials

If you are running multiple trials, you will need to open Acqknowledge and go to Playback- Set up Data Acquisition- Length/ Rate and change this to "Autosave", and save "using" to "disk". This will save individual data files to a folder. On first run you will be prompted to choose a folder to save to. 

You can also view the events palette to see a timeline of events

Linking Video Recordings

To link up a video recording (which you can obtain by selecting to record a video when running Sightlab), you can go to Media-Setup in Acqknowledge. Then , click on the "linked media" tab- Edit- and then select your video to link. 

Note: For compressed videos, you may need to adjust the delay to make sure it is at "0"

To playback the media go to Media- Show Playback Viewer, and now you can click through the events in the events palette to skip to that part in the video playback.  You can also use the "I Beam" tool in Acqknowledge to select a point in the timeline to see the corresponding data and video playback and scrub through the data. 

Multi-User

For running Multi-User, select the BIOPAC Markers checkbox on the Server script. For each client, you can set biopac=True on the sightlab class if running their own Acqknowledge server. If sharing an Acqknowledge server (and connecting to the same MP device) an event will be sent to the shared Acqknowledge graph if a client joins mid-Trial and events when items are viewed or grabbed (if running their own Acqknowledge server those events will be stored on their local graph).

Saving Physiological Data to the SightLab Data Files

To save the Acqknowledge Physiological data to the Sightlab Trial Data file, see the sample code below. Also in ExampleScripts under Biopac Saving to Data Files and Biopac Saving Average to Summary for saving averages to the summary file. This also includes a script to view a comparison chart of a condition versus the effect it has on the average physiological measurement.

import sightlab_utils.sightlab as sl
from sightlab_utils import biopacndt
import viztask

# Initialize SightLab with Biopac enabled
sightlab = sl.SightLab(biopac=True)

def outputToScreen(index, frame, channelsInSlice):
    for i, value in enumerate(frame):
        # Round and log to custom trial data
        sightlab.setCustomTrialData(str(round(value, 4)), f"Channel_{i}")

# Biopac server setup
enabledChannels = sightlab.acqServer.DeliverAllEnabledChannels()
dataServer = biopacndt.AcqNdtDataServer(sightlab.acqServer.getSingleConnectionModePort(), enabledChannels)
dataServer.RegisterCallback("OutputToScreen", outputToScreen)

# Experiment function
def sightLabExperiment():
    yield viztask.waitKeyDown(' ')
    yield sightlab.startTrial()

    #Start the BIOPAC data server
    dataServer.Start()

    yield viztask.waitKeyDown(' ')
    yield sightlab.endTrial()

    #Stop the BIOPAC data server
    dataServer.Stop()

# Schedule experiment
viztask.schedule(sightlab.runExperiment)
viztask.schedule(sightLabExperiment)

Running Acqknowledge on Another Machine

SightLab is using AcqNdtQuickConnect by default so this will return an AcqNdtServer object either for the localhost computer or, if AcqKnowledge is not running on the local computer, the first computer found on the network where AcqKnowledge is running with networking functionality enabled. 

Explore Additional Functionality and Examples

See the SightLab Example Scripts for all the extra functionality you can pair with SightLab and AcqKnowledge to extend your physiological and behavioral research capabilities. There are over a hundred templates and samples, here are a few to explore:

GUI Biofeedback: Use real-time physiological signals from Biopac (e.g., heart rate, GSR, EMG) to drive live visual feedback in VR — such as color changes, motion, or dynamic stimuli based on participant response. (See “Biofeedback_Ball_Biopac” example.)
GUI Lab Streaming Layer (LSL): Stream SightLab’s data (e.g., pupil diameter, gaze position, or head rotation) directly into the AcqKnowledge playback graph. Enables synchronized visualization of behavioral and physiological signals in real time.
GUI EEG and fNIRS Integration: Connect EEG or fNIRS systems such as Cobii fNIRS or Medelopt
GUI Saving AcqKnowledge Data to SightLab Files: Automatically embed AcqKnowledge physiological data within the SightLab trial data files, enabling combined analysis of gaze, fixation, and biosignals.
GUI External Application Data Recorder: Record synchronized eye tracking and Biopac data while running external VR or standalone applications, extending Biopac integration beyond native SightLab experiments.
GUI Phobia Presentation Templates: Use prebuilt templates for phobia, stress, or emotional response studies, with synchronized AcqKnowledge event markers to capture physiological reactions.
GUI Model and Media Viewers: Present 3D models or 360° media used in Biopac-linked experiments. Verify timing, event triggers, and gaze regions before data collection. Collect a baseline, randomize and categorize.
GUI Running Multi-User: Conduct synchronized multi-participant studies with shared Biopac markers and real-time data streaming. Ideal for group or social interaction experiments.

Additional Resources

  • For more detailed information, consult the Acqknowledge Manual under "Help" in Acqknowledge.
  • For more information on Biopac see their website https://www.biopac.com/
  • For a video tutorial on using Biopac with Sightlab VR, see below
Was this page helpful?