Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Acquiring and Running Rattlesnake

2Acquiring and Running Rattlesnake

Rattlesnake can now be acquired in several ways depending on how a user intends to use the software:

  1. Install from PyPI as a Python package

  2. Clone the GitHub repository and install from source

  3. Download a standalone executable from the GitHub Releases page
    (coming soon)

The best choice depends on whether the user simply wants to run the software or also wants to inspect, modify, or extend the codebase.

2.1Acquiring the Software

2.1.1Installing from PyPI

Rattlesnake is published on PyPI under the package name:

rattlesnake-vibration-controller

The simplest installation method is therefore:

pip install rattlesnake-vibration-controller

This is the recommended option for users who:

If desired, other Python package managers may also be used as long as they can install from PyPI. For example, users of uv may prefer:

uv pip install rattlesnake-vibration-controller

Once installed, the package exposes a console entry point named:

rattlesnake

which launches the main application.

2.1.2Installing from a GitHub Clone

Users who intend to inspect the source, contribute changes, or develop custom control laws may prefer installing from a clone of the repository.

The source code is hosted at https://github.com/sandialabs/rattlesnake-vibration-controller

Clone it with Git:

git clone https://github.com/sandialabs/rattlesnake-vibration-controller.git
cd rattlesnake-vibration-controller

Then install it from the repository directory:

pip install .

This installs the package and its dependencies from the local checkout.

2.1.2.1Editable Installation

For development work, it is often preferable to install in editable mode:

pip install -e .

The -e flag tells Python to install the package in a way that points back to the source tree rather than copying the files into site-packages. This means:

If developer tools are also needed, such as pytest, pylint, or documentation tooling, the optional development dependencies can be installed with:

pip install -e .[dev]

or with uv:

uv pip install -e .[dev]

This is the recommended setup for developers and advanced users.

2.1.3Downloading a Standalone Executable

A standalone executable distribution is planned for future releases, to support users who do not wish to install Python or manage package dependencies manually.

When available, executables will be distributed through the GitHub Releases page https://github.com/sandialabs/rattlesnake-vibration-controller/releases.

This is intended to be the most accessible option for non-Python users.

2.2Setting Up a Python Environment

When using the Python-package or source-install approaches, it is strongly recommended to use a virtual environment.

A virtual environment isolates Rattlesnake and its dependencies from the rest of the Python installation on the computer. This helps avoid version conflicts and makes upgrades or removal easier.

Examples:

# Option 1: standard library venv
python -m venv .venv

# Option 2: uv-managed venv
uv venv

Activate the environment before installing:

source .venv/bin/activate       # bash / zsh
source .venv/bin/activate.fish  # fish shell
.\.venv\Scripts\activate        # Windows PowerShell / CMD

2.3Running the Software

2.3.1Running via Standard Python Execution

If Rattlesnake has been cloned from GitHub and the user wishes to run it directly from the source tree without using the installed entry point, the main application can be launched with:

python src/rattlesnake/main.py

This is especially useful for development and debugging from a source checkout.

2.3.2Running via the Installed Console Script

When installed through pip install or pip install -e, Rattlesnake exposes the console script:

rattlesnake

So in an activated environment, the application can typically be started simply with:

rattlesnake

On Windows, a corresponding executable wrapper is placed into the Python environment’s Scripts directory. On Unix-like platforms, the script is installed into the environment’s bin directory.

If the environment is activated, this command should already be on the path. If not, it may still be launched directly from the environment’s script directory.

2.3.3Running Rattlesnake Without a User Interface

Advanced users wishing to automate workflows may wish to run Rattlesnake without a user interface and instead only use code to control the software. In this case, Rattlesnake can be imported like any other Python module. NEED A BRIEF DESCRIPTION HERE THAT POINTS TO THE API DOC MODULES

2.3.4Running a Standalone Executable

Once standalone executables are available on the Releases page, users will be able to launch Rattlesnake just like any other desktop application by executing the downloaded file.

2.4Notes on Execution from IDEs

Many users may prefer launching Rattlesnake from an integrated development environment (IDE) rather than from a command shell.

Because Rattlesnake uses multiprocessing and multiple cooperating subprocesses, IDE-integrated consoles do not always behave well. In general, if launching from an IDE:

If an error occurs, the command terminal is often the easiest place to capture useful diagnostics for troubleshooting or for reporting issues. If the terminal immediately closes after an unexpected exit, this diagnostic information is lost.

As before, Spyder users may find it helpful to configure execution through an external system terminal, as illustrated in Figure 2.1.

Spyder run configuration showing execution in an external system terminal as well as allowing interaction with the Python console after execution.

Figure 2.1:Spyder run configuration showing execution in an external system terminal as well as allowing interaction with the Python console after execution.

2.5Computational Requirements

Rattlesnake is process-heavy software. It spawns multiple cooperating processes for:

The exact computational requirements depend on:

Virtual hardware can be especially demanding, because the acquisition process may need to simulate the structural response rather than simply read measured data from hardware.

As a rough guideline:

The Chapter 14 environment is particularly memory-intensive, so users running long sine sweeps over multiple channels may need to have a large amount of RAM available.

Users planning to run large MIMO tests or detailed virtual-hardware simulations should expect computational performance to matter.

2.6Obtaining Support

Rattlesnake is developed by a relatively small team and continues to evolve. As with any active research or engineering software, users should expect that bugs, rough edges, or incomplete features may still exist.

If an issue is encountered, support requests and bug reports should be submitted through the GitHub Issues page https://github.com/sandialabs/rattlesnake-vibration-controller/issues

The issue tracker supports different report types, including:

When reporting a bug, it is very helpful to include as much detail as possible, such as:

Clear reproduction steps greatly improve the chance that the issue can be diagnosed and fixed quickly.

Users are encouraged to consult both this documentation and the source repository before filing a question, but the issue tracker remains the primary place to request support or report problems.