diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb024cdc0a87235e99929df52abfa5b7610183f6..3ce52d2249ec97905f23ff9faa3eee23e332e5c9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -38,6 +38,7 @@ stages:
         -DWALBERLA_BUILD_BENCHMARKS=ON
         -DWALBERLA_BUILD_TUTORIALS=ON
         -DWALBERLA_BUILD_TOOLS=ON
+        -DWALBERLA_BUILD_SHOWCASES=ON
         -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI
         -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA
         -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON
diff --git a/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp b/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
index 5f4336e493e3ee5e0ac73e52d2e621dd6c2b6c33..e8e27e9cf9e0bc8d5f0c0f3d28e1fbe7c10d2780 100644
--- a/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
+++ b/apps/showcases/CombinedResolvedUnresolved/CombinedResolvedUnresolved.cpp
@@ -543,7 +543,7 @@ int main(int argc, char** argv)
    // create pe bodies
 
    // bounding planes (global)
-   const auto planeMaterial = pe::createMaterial("planeMaterial", 1000.0, 0.8, 0.1, 0.05, 0.2, 80, 100, 10, 11);
+   const auto planeMaterial = pe::createMaterial("planeMaterial", 1000_r, 0.8_r, 0.1_r, 0.05_r, 0.2_r, 80_r, 100_r, 10_r, 11_r);
    pe::createPlane(*globalBodyStorage, 0, Vector3< real_t >(1, 0, 0), Vector3< real_t >(0, 0, 0), planeMaterial);
    pe::createPlane(*globalBodyStorage, 0, Vector3< real_t >(-1, 0, 0), Vector3< real_t >(real_c(domainSize[0]), 0, 0),
                    planeMaterial);
@@ -564,8 +564,8 @@ int main(int argc, char** argv)
    // add DPM spheres
    const auto peMaterial_DPM = createSphereMaterial("peMaterial_DPM", diameter_DPM, densityRatio_DPM);
    createSphereLattice(*blocks, *globalBodyStorage, bodyStorageID,
-                       AABB(real_t(0), real_t(0), real_t(1.0 * real_t(domainSize[2]) / 8.0), real_t(domainSize[0]),
-                            real_t(domainSize[1]), real_t(2.0 * real_t(domainSize[2]) / 8.0)),
+                       AABB(real_t(0), real_t(0), real_t(1.0 * real_t(domainSize[2]) / 8.0_r), real_t(domainSize[0]),
+                            real_t(domainSize[1]), real_t(2.0 * real_t(domainSize[2]) / 8.0_r)),
                        diameter_DPM, real_t(0.15), peMaterial_DPM, real_t(0));
 
    syncCall();
diff --git a/apps/showcases/HeatConduction/ContactDetection.h b/apps/showcases/HeatConduction/ContactDetection.h
index c5ed90565ea564ef350e1ff5a1931010bb22641a..9c812ce478ce5b14b1082d649dda583635dc7817 100644
--- a/apps/showcases/HeatConduction/ContactDetection.h
+++ b/apps/showcases/HeatConduction/ContactDetection.h
@@ -83,7 +83,7 @@ inline bool ContactDetection::operator()( const size_t idx1,
 template <typename Accessor>
 inline bool ContactDetection::operator()( const size_t idx1,
                                           const size_t idx2,
-                                          const data::Sphere& s,
+                                          const data::Sphere& /*s*/,
                                           const data::HalfSpace& p,
                                           Accessor& ac )
 {
diff --git a/apps/showcases/Mixer/Mixer.cpp b/apps/showcases/Mixer/Mixer.cpp
index 75016f8bd5dca74e64e898c2145c0739ffe03b0e..034156452a6c0fa72eb3bbf5ec2c48c7f5e79bfb 100644
--- a/apps/showcases/Mixer/Mixer.cpp
+++ b/apps/showcases/Mixer/Mixer.cpp
@@ -261,7 +261,7 @@ int main( int argc, char ** argv )
    Vec3 origin = simulationDomain.center();
    Vec3 dp;
 
-   auto mixingBlade = ss->create<data::Box>( Vec3(0.009,simulationDomain.ySize(),simulationDomain.zSize()) );
+   auto mixingBlade = ss->create<data::Box>( Vec3(0.009_r, simulationDomain.ySize(), simulationDomain.zSize()) );
    ss->shapes[mixingBlade]->updateMassAndInertia(std::numeric_limits<real_t>::infinity());
    auto box0                       = ps->create();
    box0->getPositionRef()          = Vec3(simulationDomain.xSize() * real_t(0.5),0.0,0.0);
@@ -316,10 +316,10 @@ int main( int argc, char ** argv )
    data::particle_flags::set(box3->getFlagsRef(), data::particle_flags::INFINITE);
    data::particle_flags::set(box3->getFlagsRef(), data::particle_flags::FIXED);
    data::particle_flags::set(box3->getFlagsRef(), data::particle_flags::NON_COMMUNICATING);
-   box3->getRotationRef().rotate(Vec3(0,1,0), math::pi * 0.15 );
+   box3->getRotationRef().rotate(Vec3(0,1,0), math::pi * 0.15_r );
 //   box3->getRotationRef().rotate(Vec3(0,0,1), -math::pi * 0.15 );
    dp = ( box3->getPosition() - origin );
-   dRot = Rot3(Vec3(real_t(0), real_t(0), math::pi * 1.5));
+   dRot = Rot3(Vec3(real_t(0), real_t(0), math::pi * 1.5_r));
    box3->setPosition( origin + dRot.getMatrix() * dp );
    box3->getRotationRef().rotate(dRot);