diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp
index c773b305a695b2564df03d85feb02669e1578739..68fa3621a0a6663ba105e9677effb4e4f32f6e38 100644
--- a/src/pulsaranimationwidget.cpp
+++ b/src/pulsaranimationwidget.cpp
@@ -508,6 +508,15 @@ void PulsarAnimationWidget::stopAnimation()
     updateGL();
 }
 
+void PulsarAnimationWidget::resetViewpoint()
+{
+    m_mouseAngleH = 0.0;
+    m_mouseAngleV = 0.0;
+    m_cameraZoom = 30.0;
+
+    updateCameraPosition(m_mouseAngleH, m_mouseAngleV, m_cameraZoom);
+}
+
 void PulsarAnimationWidget::updateFrame()
 {
     m_pulsarRotationAngle += m_pulsarRotationDelta;
diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h
index 3dbafa9bb75a8afec44b520bb486424e6bf668a0..21b582d44d355643db41a1abec0ce55fbe611c19 100644
--- a/src/pulsaranimationwidget.h
+++ b/src/pulsaranimationwidget.h
@@ -49,6 +49,7 @@ public slots:
     void runAnimation();
     void pauseAnimation();
     void stopAnimation();
+    void resetViewpoint();
 
     void updateFrame();
 
diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp
index fd4b727da53fdeb67f9be3b485b418bcd7a47806..3de1bec2004c0d49751f7ef83f3e34088d85313f 100644
--- a/src/pulsatingscience.cpp
+++ b/src/pulsatingscience.cpp
@@ -52,6 +52,8 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent)
 	m_pauseShortcut->setEnabled(false);
 	m_stopShortcut = new QShortcut(ui.actionStop->shortcut(), this);
 	m_stopShortcut->setEnabled(false);
+    m_resetShortcut = new QShortcut(ui.actionReset->shortcut(), this);
+    m_resetShortcut->setEnabled(false);
 	m_rotationAxesShortcut = new QShortcut(ui.actionRotationAxes->shortcut(), this);
 	m_rotationAxesShortcut->setEnabled(false);
 	m_menuBarShortcut = new QShortcut(ui.actionMenu_bar->shortcut(), this);
@@ -90,6 +92,12 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent)
 	connect(ui.actionStop, SIGNAL(triggered()),
 				this, SLOT(on_pushStop_clicked()));
 
+    connect(ui.pushReset, SIGNAL(clicked()),
+            ui.pulsarGlWidget, SLOT(resetViewpoint()));
+
+    connect(ui.actionReset, SIGNAL(triggered()),
+                ui.pulsarGlWidget, SLOT(resetViewpoint()));
+
 	connect(ui.actionRotationAxes, SIGNAL(toggled(bool)),
 				ui.pulsarGlWidget, SLOT(showRotationAxes(bool)));
 
@@ -120,6 +128,11 @@ PulsatingScience::~PulsatingScience()
 		delete m_stopShortcut;
 	}
 
+    if(m_resetShortcut) {
+        m_resetShortcut->disconnect();
+        delete m_resetShortcut;
+    }
+
 	if(m_rotationAxesShortcut) {
 		m_rotationAxesShortcut->disconnect();
 		delete m_rotationAxesShortcut;
@@ -244,6 +257,8 @@ void PulsatingScience::on_actionMenu_bar_toggled(bool checked)
 		m_pauseShortcut->setEnabled(false);
 		m_stopShortcut->disconnect();
 		m_stopShortcut->setEnabled(false);
+        m_resetShortcut->disconnect();
+        m_resetShortcut->setEnabled(false);
 		m_rotationAxesShortcut->disconnect();
 		m_rotationAxesShortcut->setEnabled(false);
 		m_fullscreenShortcut->disconnect();
@@ -262,6 +277,8 @@ void PulsatingScience::on_actionMenu_bar_toggled(bool checked)
 		connect(m_pauseShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(pauseAnimation()));
 		m_stopShortcut->setEnabled(true);
 		connect(m_stopShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(stopAnimation()));
+        m_resetShortcut->setEnabled(true);
+        connect(m_resetShortcut, SIGNAL(activated()), ui.pulsarGlWidget, SLOT(resetViewpoint()));
 		m_rotationAxesShortcut->setEnabled(true);
 		connect(m_rotationAxesShortcut, SIGNAL(activated()), this, SLOT(rotationAxesToggled()));
 		m_fullscreenShortcut->setEnabled(true);
diff --git a/src/pulsatingscience.h b/src/pulsatingscience.h
index e74b34d4683397c270dd8f398b906f5f63885757..c4a78392282785be9eb9e8cc4292a241bac76efd 100644
--- a/src/pulsatingscience.h
+++ b/src/pulsatingscience.h
@@ -74,6 +74,7 @@ private:
     QShortcut *m_runShortcut;
     QShortcut *m_pauseShortcut;
     QShortcut *m_stopShortcut;
+    QShortcut *m_resetShortcut;
     QShortcut *m_permanentOrbitsShortcut;
     QShortcut *m_rotationAxesShortcut;
     QShortcut *m_menuBarShortcut;
diff --git a/src/pulsatingscience.qrc b/src/pulsatingscience.qrc
index a809b9a3c569ad125465145afbdf9a0cfdc3eda7..983fcf3e063a9b5dfd570098a9fbc9bf973e4df4 100644
--- a/src/pulsatingscience.qrc
+++ b/src/pulsatingscience.qrc
@@ -1,19 +1,20 @@
 <RCC>
-  <qresource prefix="icons" >
-    <file>resources/control-pause.png</file>
-    <file>resources/control-quit.png</file>
-    <file>resources/control-run.png</file>
-    <file>resources/control-stop.png</file>
-    <file>resources/help-about.png</file>
-    <file>resources/help-help.png</file>
-    <file>resources/help-website.png</file>
-    <file>resources/aei-icon48.png</file>
-  </qresource>
-  <qresource prefix="i18ns" >
-    <file>resources/pulsatingscience_de.qm</file>
-  </qresource>
-  <qresource prefix="textures" >
-    <file>resources/texture_background_carina.png</file>
-    <file>resources/texture_pulsar.png</file>
-  </qresource>
+    <qresource prefix="/icons">
+        <file>resources/control-pause.png</file>
+        <file>resources/control-quit.png</file>
+        <file>resources/control-run.png</file>
+        <file>resources/control-stop.png</file>
+        <file>resources/help-about.png</file>
+        <file>resources/help-help.png</file>
+        <file>resources/help-website.png</file>
+        <file>resources/aei-icon48.png</file>
+        <file>resources/control-reset.png</file>
+    </qresource>
+    <qresource prefix="/i18ns">
+        <file>resources/pulsatingscience_de.qm</file>
+    </qresource>
+    <qresource prefix="/textures">
+        <file>resources/texture_background_carina.png</file>
+        <file>resources/texture_pulsar.png</file>
+    </qresource>
 </RCC>
diff --git a/src/pulsatingscience.ui b/src/pulsatingscience.ui
index da45f723c5ef9a630c7cecccf4b8534d46f3e70a..77cc333dbab9d65c77be49b7e0120c633ad0f924 100644
--- a/src/pulsatingscience.ui
+++ b/src/pulsatingscience.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>745</width>
-    <height>600</height>
+    <width>787</width>
+    <height>684</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -336,6 +336,26 @@
          </property>
         </widget>
        </item>
+       <item>
+        <widget class="QPushButton" name="pushReset">
+         <property name="statusTip">
+          <string>Reset view to observer's line of sight</string>
+         </property>
+         <property name="text">
+          <string>Reset</string>
+         </property>
+         <property name="icon">
+          <iconset resource="pulsatingscience.qrc">
+           <normaloff>:/icons/resources/control-reset.png</normaloff>:/icons/resources/control-reset.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>14</width>
+           <height>14</height>
+          </size>
+         </property>
+        </widget>
+       </item>
        <item>
         <spacer name="verticalSpacer">
          <property name="orientation">
@@ -394,7 +414,7 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>745</width>
+     <width>787</width>
      <height>22</height>
     </rect>
    </property>
@@ -426,6 +446,8 @@
     <addaction name="actionPause"/>
     <addaction name="actionStop"/>
     <addaction name="separator"/>
+    <addaction name="actionReset"/>
+    <addaction name="separator"/>
     <addaction name="actionQuit"/>
    </widget>
    <addaction name="menuControl"/>
@@ -619,6 +641,21 @@
     <string>Alt+O</string>
    </property>
   </action>
+  <action name="actionReset">
+   <property name="icon">
+    <iconset resource="pulsatingscience.qrc">
+     <normaloff>:/icons/resources/control-reset.png</normaloff>:/icons/resources/control-reset.png</iconset>
+   </property>
+   <property name="text">
+    <string>Reset</string>
+   </property>
+   <property name="toolTip">
+    <string>Reset view</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+R</string>
+   </property>
+  </action>
  </widget>
  <customwidgets>
   <customwidget>