In this blog post, we will introduce our most recent core: VibraCore, the tool that automates risk management of building damage during vibration work. This tool uses the cpt-model from the previous blogpost. If you haven't read it, you can find it here: Part 1 and Part 2.

Why do we need VibraCore?

During construction, installation of (sheet)piles cause vibration in the subsurface. Those vibrations can lead to building damage.
With VibraCore it is possible to predict the vibration velocity of a given impact at a given distance. The impact can be calculated either from CPTs or by specifying a prescribed vibratory hammer. Those predictions can be done for any number of buildings, making VibraCore the ideal risk management tool. With plotting features, VibraCore allows a quick assessment of the surrounding structures based on Dutch regulations.

How do I use it?

VibraCore is based on Dutch regulations for vibration prediction. To calculate the impact force needed to install sheet piles, the tool follows the CUR166. Using a CPT and sheet pile properties, the maximum impact force is calculated. This maximum force is translated to vibration velocity. The assessment of building damage is based on the SBR-A.

VibraCore is available as an API service, allowing the user to integrate the core into his own pipeline. To get started we recommend using nuclei, our own python interface, to connect to the CEMS API.

In the example below, we will show you how to use the API to call a DataFrame that holds the calculation of the impact force over depth based on a CPT.

import nuclei

response = nuclei.call_endpoint(

The code block above calls the vibracore/impact-force/dataframe/ endpoint. Please note that the schema property is not yet set. This property holds all the information needed to calculate the impact force. We will build this schema in four steps:

Step 1: Soil Properties
In this step, we collect all soil properties. Here, we combine the CPT file content with the classified layer table created by the cpt-model. To provide as much flexibility to the user, the endpoint asks the properties separately. In this way, the user can check the classification before it is used in the impact force calculation.

"soil_properties": {
"cpt": [cpt_file_content],
"layer_table": [dataframe],
"groundwater_level_nap": phreatic_level,
"custom_interval": .5,

Step 2: Friction strategy
There are two types of friction strategy; Slip- and CPT friction strategy. Based on the CUR166, the strategies use different methods to calculate the maximum impact force.
"friction_strategy": "SlipFrictionStrategy"

Step 3: Vibration source
The vibration source part of the schema holds information about the sheet pile parameters.

"vibration_source": {
"area_tip_specific": .01511,
"area_shaft_specific": 2.06,
"slot_resistance_specific": 3,
"num_sheets": 2
"sheet_pile_name": "custom",

Step 4: Calculation
There are two more properties needed to calculate the maximum impact force. The drive strategy and the
installation level.

"impact_force_calculation": {
"Drive_strategy": "push",

If you combine all four steps into the schema you create a pipeline for calculating the impact force and can create a figure like below:

In this blog post, we provided an example to calculate the impact force based on a CPT. This is one of the endpoints that are available within the VibraCore API. Furthermore, with our partnership with VIKTOR we co-created a user interface on their platform, ready to use. So, not into the world of programming yet? Use the VibraCore user interface!

We are currently working on more applications that we offer via an API service, so make sure to follow us on LinkedIn to stay up-do-date!

Site by Alsjeblaft!