All Projects → bothlab → syntalos

bothlab / syntalos

Licence: other
Flow-based synchronized parallel DAQ from diverse sources and flexible control for neuroscience experiments

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Meson
512 projects

Projects that are alternatives of or similar to syntalos

Miniscope-v4
All things Miniscope v4
Stars: ✭ 90 (+592.31%)
Mutual labels:  neuroscience, miniscope
XGImagePickerController
iOS相册图片/视频选择器
Stars: ✭ 32 (+146.15%)
Mutual labels:  camera
CVSandbox
Open source software package, which aims to allow solving different tasks related to computer vision areas, like video surveillance, vision based automation/robotics, different sorts of image/video processing, etc.
Stars: ✭ 56 (+330.77%)
Mutual labels:  camera
TakePhoto
🔥Kongzue的APP拍照&相册选择工具
Stars: ✭ 41 (+215.38%)
Mutual labels:  camera
Quizoo
Online Quiz Platform for conducting quizes
Stars: ✭ 27 (+107.69%)
Mutual labels:  camera
Vision CoreML-App
This app predicts the age of a person from the picture input using camera or photos gallery. The app uses Core ML framework of iOS for the predictions. The Vision library of CoreML is used here. The trained model fed to the system is AgeNet.
Stars: ✭ 15 (+15.38%)
Mutual labels:  camera
blender-renderborder
pixel-precise render border
Stars: ✭ 26 (+100%)
Mutual labels:  camera
gnerf
[ ICCV 2021 Oral ] Our method can estimate camera poses and neural radiance fields jointly when the cameras are initialized at random poses in complex scenarios (outside-in scenes, even with less texture or intense noise )
Stars: ✭ 152 (+1069.23%)
Mutual labels:  camera
mrivis
medical image visualization library and development toolkit
Stars: ✭ 19 (+46.15%)
Mutual labels:  neuroscience
ng-webcam
ngWebcam is an AngularJS directive for capturing images from your computer's camera, and delivering then to you as data uri.
Stars: ✭ 14 (+7.69%)
Mutual labels:  camera
three-orbitcontrols
is the three.js OrbitControls from official repo examples
Stars: ✭ 80 (+515.38%)
Mutual labels:  camera
antropy
AntroPy: entropy and complexity of (EEG) time-series in Python
Stars: ✭ 111 (+753.85%)
Mutual labels:  neuroscience
scrapsort
A convnet classifier and hardware device to automatically sort recycling materials.
Stars: ✭ 29 (+123.08%)
Mutual labels:  camera
bevy 4x camera
A 4X style camera for bevy.
Stars: ✭ 26 (+100%)
Mutual labels:  camera
FreeRADIUS-Server-Configuration-Tool
🎯 FreeRADIUS Server Configuration Tool 🖥️
Stars: ✭ 33 (+153.85%)
Mutual labels:  linux-app
HomeAssistant-Tapo-Control
Control for Tapo cameras as a Home Assistant component
Stars: ✭ 327 (+2415.38%)
Mutual labels:  camera
AstroPhoto-Plus
A lightweight, web based astrophotography sequence generator and INDI client written in Python and React.
Stars: ✭ 54 (+315.38%)
Mutual labels:  camera
rawtoaces
RAW to ACES Utility
Stars: ✭ 108 (+730.77%)
Mutual labels:  camera
CamRaptor
CamRaptor is a tool that exploits several vulnerabilities in popular DVR cameras to obtain network camera credentials.
Stars: ✭ 106 (+715.38%)
Mutual labels:  camera
python-amcrest
A Python 2.7/3.x module for Amcrest and Dahua Cameras using the SDK HTTP API.
Stars: ✭ 159 (+1123.08%)
Mutual labels:  camera

Syntalos

Syntalos Screenshot Build Test

Syntalos (formerly known as MazeAmaze) is a software for timestamp-synchronized parallel data acquisition from diverse data sources. It is especially useful for in-vivo behavior tracking, electrophysiology, miniscope recordings and control of automated closed-loop experiments in neuroscience. Its modularity allows it to be used for a wide variety of different experiment types.

Syntalos is built with a set of core principles in mind:

  • Timestamps of all data sources of an experiment should be synchronized (within tolerance limits), so data at specific points in time can be directly compared. If hardware synchronization is unavailable, a software solution is used.
  • A data acquistion task must not block a different acquistion or processing task
  • Data is stored in a fixed directory structure (Experiment Directory Layout, EDL) with all metadata alongside the data
  • Account for experimenter error and have sane failure modes (autocorrect bad experimenter input, never have a component fail silently, ...)
  • Never auto-adjust parameters without logging the fact
  • Be Linux-native: Syntalos is written and used on Linux, which enables it to make use of some beneficial Linux-specific functionality to increase its robustness or performance (a Windows port is likely possible, but would need extensive testing).

Modules

Syntalos modules are self-contained entities which can perform arbitrary data acquisition, processing and/or storage tasks. All modules are supervised and driven by the Syntalos Engine and can communicate with each other using data streams.

Currently, the following modules are built-in or can be enabled at build-time:

  • canvas: An OpenGL-based display for single images and image streams. Will display frame times and framerates for interactive monitoring.
  • camera-flir: Use (USB) cameras from FLIR Systems which can be addressed via their Spinnaker SDK.
  • camera-generic: Use any camera compatible with UVC or the OpenCV videocapture abstraction (e.g. simple webcams).
  • camera-tis: Use a (USB) industrial camera from The Imaging Source to acquire a video stream.
  • camer-ueye: Record video with an uEye industrial camera from IDS (this module is unmaintained!).
  • firmata-io: Control a (wired) serial device that speaks the Firmata protocol, usually an Arduino. This module can be controlled with a custom user script via the Python module.
  • firmata-userctl: Manually send commands to a firmata-io module to change pin states using a simple GUI.
  • intan-rhx: Use an RHD2000 USB Interface Board by IntanTech for biopotential recordings of up to 256 channels.
  • miniscope: Perform calcium imaging in awake, freely moving animals using devices from the UCLA Miniscope Project.
  • pyscript: Run arbitrary Python 3 code and send automation commands to other modules in the active experiment.
  • runcmd: Run any external command when the experiment was started.
  • table: Display & record tabular data in a standardized CSV format.
  • traceplot: Plot long-running signal traces (usually recorded via the intan-rhx module).
  • triled-tracker: Track an animal via three LEDs mounted on a headstage and save various behavior parameters.
  • videorecorder: Record image streams from cameras to video files in various formats.

Developers

Dependencies

  • C++17 compatible compiler (GCC >= 7.1 or Clang >= 4. GCC is recommended)
  • Meson (>= 0.58)
  • Qt5 (>= 5.12)
  • Qt5 Test
  • Qt5 OpenGL
  • Qt5 SVG
  • Qt5 Remote Objects
  • Qt5 SerialPort
  • Qt5 Charts
  • GLib (>= 2.58)
  • Eigen3
  • TOML++
  • FFmpeg (>= 4.1)
  • GStreamer (>= 1.0)
  • OpenCV (>= 4.1)
  • KF5 Archive
  • KF5 TextEditor
  • pybind11
  • libusb (>= 1.0)

We recommend Debian 11 (Bullseye) or Ubuntu 20.04 (Focal Fossa) to run Syntalos, but any Linux distribution that has a recent enough C++ compiler and Qt version should work.

Some modules may add additional dependencies for libraries to talk to individual devices or for a certain special feature. In case you get a dependency error when running meson, install the missing dependency or try to build with less modules enabled.

Before attempting to build Syntalos, ensure all dependencies (and their development files) are installed on your system. If you are using Debian or Ubuntu, you may choose to locally run the system package installation script that the CI system uses: sudo ./tests/ci/install-deps-deb.sh. IMPORTANT: This script runs APT with fsync/sync disabled to speed up package installation, but this leaves the system vulnerable to data corruption in case of an unexpected power outage or other issues during installation. If you are concerned by this, please install the packages mentioned in the script file manually.

After installing all dependencies, you should be able to build the software after configuring the build with Meson for your platform:

mkdir build && cd build
meson --buildtype=debugoptimized -Doptimize-native=true ..
ninja
sudo ninja install

Modules can be enabled and disabled via the -Dmodules flag - refer to meson_options.txt for a list of possible, comma-separated values.

Pull-requests are very welcome! (Code should be valid C++17, use 4 spaces for indentation)

Users

Currently, Syntalos needs to be compiled manually and we do not provide automatic binary builds yet. This will likely change as the software matures and the 1.0 release is tagged - if you need help in building Syntalos for your Linux distribution, don't hesitate to file a request for help as an issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].