diff --git a/include/laser/capture/capture_laser_3d.h b/include/laser/capture/capture_laser_3d.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a8a4e38f1e453174cc32f35e820829435c3bd7c
--- /dev/null
+++ b/include/laser/capture/capture_laser_3d.h
@@ -0,0 +1,33 @@
+#ifndef CAPTURE_LASER_3d_H_
+#define CAPTURE_LASER_3d_H_
+
+// WOLF includes
+#include <core/capture/capture_base.h>
+
+// PCL includes
+#include <pcl/point_types.h>
+#include <pcl/point_cloud.h>
+
+namespace wolf
+{
+namespace laser
+{
+
+typedef pcl::PointCloud<pcl::PointXYZ> PointCloud;
+
+class CaptureLaser3d : public CaptureBase
+{
+  public:
+    CaptureLaser3d(TimeStamp _timestamp, PointCloud::Ptr _point_cloud);
+    ~CaptureLaser3d();
+    PointCloud::Ptr getPointCloud() const;
+    
+    
+  private:
+    PointCloud::Ptr point_cloud_;
+}
+
+}  // namespace laser
+}  // namespace wolf
+
+#endif  // CAPTURE_LASER_3d_H_
\ No newline at end of file
diff --git a/src/capture/capture_laser_3d.cpp b/src/capture/capture_laser_3d.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5e7738a29efcd54d7312d2b58ffb1ab77a81bb35
--- /dev/null
+++ b/src/capture/capture_laser_3d.cpp
@@ -0,0 +1,21 @@
+#include "laser/capture/capture_laser_3d.h"
+
+namespace wolf
+{
+namespace laser
+{
+
+CaptureLaser3d::CaptureLaser3d(const TimeStamp& _timestamp, SensorBasePtr _sensor, PointCloud::Ptr _point_cloud)
+    : CaptureBase("CaptureLaser3d", _timestamp, _sensor), point_cloud_(_point_cloud)
+{
+}
+
+CaptureLaser3d::~CaptureLaser3d() {}
+
+PointCloud::Ptr CaptureLaser3d::getPointCloud() const
+{
+    return point_cloud_;
+}
+
+}  // namespace laser
+}  // namespace wolf
\ No newline at end of file