Index: src/UIElements/Qt4/InstanceBoard/QtObservedAtom.cpp
===================================================================
--- src/UIElements/Qt4/InstanceBoard/QtObservedAtom.cpp	(revision f4b6bc98663e1316494422d1b592f84914e77d64)
+++ src/UIElements/Qt4/InstanceBoard/QtObservedAtom.cpp	(revision 897a018da758c7cae890e36cd28b044f33ad9e7e)
@@ -89,4 +89,8 @@
 QtObservedAtom::AtomPositionChannels(1, AtomObservable::PositionChanged);
 const Observable::channels_t
+QtObservedAtom::AtomVelocityChannels(1, AtomObservable::VelocityChanged);
+const Observable::channels_t
+QtObservedAtom::AtomForceChannels(1, AtomObservable::ForceChanged);
+const Observable::channels_t
 QtObservedAtom::AtomSelectedChannels(1, AtomObservable::SelectionChanged);
 
@@ -124,4 +128,6 @@
   boost::any_cast<ObservedValue_wCallback<std::string, ObservedValue_Index_t> *>(ObservedValues[AtomName])->noteCallBackIsGone();
   boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(ObservedValues[AtomPosition])->noteCallBackIsGone();
+  boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(ObservedValues[AtomVelocity])->noteCallBackIsGone();
+  boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(ObservedValues[AtomForce])->noteCallBackIsGone();
   boost::any_cast<ObservedValue_wCallback<bool, ObservedValue_Index_t> *>(ObservedValues[AtomSelected])->noteCallBackIsGone();
 
@@ -215,4 +221,22 @@
 inline
 #endif
+Vector QtObservedAtom::updateVelocity(
+    const atom &_atom)
+{
+  return _atom.getAtomicVelocity();
+}
+
+#ifdef HAVE_INLINE
+inline
+#endif
+Vector QtObservedAtom::updateForce(
+    const atom &_atom)
+{
+  return _atom.getAtomicForce();
+}
+
+#ifdef HAVE_INLINE
+inline
+#endif
 bool QtObservedAtom::updateSelected(
     const atom &_atom)
@@ -269,8 +293,14 @@
     boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(
         ObservedValues[AtomPosition])->forceUpdate();
+    boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(
+        ObservedValues[AtomVelocity])->forceUpdate();
+    boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(
+        ObservedValues[AtomForce])->forceUpdate();
     boost::any_cast<ObservedValue_wCallback<QtObservedMolecule*, ObservedValue_Index_t> *>(
         ObservedValues[MoleculeRef])->forceUpdate();
     // then tell Qt part about updates
     emit positionChanged();
+    emit velocityChanged();
+    emit forceChanged();
     emit moleculeChanged();
   } else {
@@ -296,4 +326,10 @@
       case AtomObservable::PositionChanged:
         emit positionChanged();
+        break;
+      case AtomObservable::VelocityChanged:
+        emit velocityChanged();
+        break;
+      case AtomObservable::ForceChanged:
+        emit forceChanged();
         break;
       case AtomObservable::SelectionChanged:
@@ -362,4 +398,8 @@
   const boost::function<Vector ()> AtomPositionUpdater(
       boost::bind(&QtObservedAtom::updatePosition, boost::cref(*_atomref)));
+  const boost::function<Vector ()> AtomVelocityUpdater(
+      boost::bind(&QtObservedAtom::updateVelocity, boost::cref(*_atomref)));
+  const boost::function<Vector ()> AtomForceUpdater(
+      boost::bind(&QtObservedAtom::updateForce, boost::cref(*_atomref)));
   const boost::function<bool ()> AtomSelectedUpdater(
       boost::bind(&QtObservedAtom::updateSelected, boost::cref(*_atomref)));
@@ -401,4 +441,18 @@
       AtomPositionUpdater(),
       AtomPositionChannels,
+      _subjectKilled);
+  _ObservedValues[AtomVelocity] = new ObservedValue_wCallback<Vector, ObservedValue_Index_t>(
+      _atomref,
+      AtomVelocityUpdater,
+      "AtomVelocity_"+toString(_id),
+      AtomVelocityUpdater(),
+      AtomVelocityChannels,
+      _subjectKilled);
+  _ObservedValues[AtomForce] = new ObservedValue_wCallback<Vector, ObservedValue_Index_t>(
+      _atomref,
+      AtomForceUpdater,
+      "AtomForce_"+toString(_id),
+      AtomForceUpdater(),
+      AtomForceChannels,
       _subjectKilled);
   _ObservedValues[AtomSelected] = new ObservedValue_wCallback<bool, ObservedValue_Index_t>(
@@ -426,4 +480,6 @@
   delete boost::any_cast<ObservedValue_wCallback<std::string, ObservedValue_Index_t> *>(_ObservedValues[AtomName]);
   delete boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(_ObservedValues[AtomPosition]);
+  delete boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(_ObservedValues[AtomVelocity]);
+  delete boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(_ObservedValues[AtomForce]);
   delete boost::any_cast<ObservedValue_wCallback<bool, ObservedValue_Index_t> *>(_ObservedValues[AtomSelected]);
   delete boost::any_cast<ObservedValue_wCallback<QtObservedMolecule*, ObservedValue_Index_t> *>(_ObservedValues[MoleculeRef]);
@@ -463,4 +519,14 @@
 }
 
+const Vector& QtObservedAtom::getAtomVelocity() const
+{
+  return boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(ObservedValues[AtomVelocity])->get();
+}
+
+const Vector& QtObservedAtom::getAtomForce() const
+{
+  return boost::any_cast<ObservedValue_wCallback<Vector, ObservedValue_Index_t> *>(ObservedValues[AtomForce])->get();
+}
+
 const bool QtObservedAtom::getAtomSelected() const
 {
Index: src/UIElements/Qt4/InstanceBoard/QtObservedAtom.hpp
===================================================================
--- src/UIElements/Qt4/InstanceBoard/QtObservedAtom.hpp	(revision f4b6bc98663e1316494422d1b592f84914e77d64)
+++ src/UIElements/Qt4/InstanceBoard/QtObservedAtom.hpp	(revision 897a018da758c7cae890e36cd28b044f33ad9e7e)
@@ -136,4 +136,16 @@
   const Vector& getAtomPosition() const;
 
+  /** Getter to atom velocity contained in \a ObservedValues.
+   *
+   * \return atom's velocity
+   */
+  const Vector& getAtomVelocity() const;
+
+  /** Getter to atom force contained in \a ObservedValues.
+   *
+   * \return atom's force
+   */
+  const Vector& getAtomForce() const;
+
   /** Getter to the observed state of the associated molecule.
    *
@@ -155,4 +167,6 @@
   void nameChanged();
   void positionChanged();
+  void velocityChanged();
+  void forceChanged();
   void atomRemoved();
   void selectedChanged();
@@ -174,4 +188,6 @@
   static std::string updateName(const atom &_atom);
   static Vector updatePosition(const atom &_atom);
+  static Vector updateVelocity(const atom &_atom);
+  static Vector updateForce(const atom &_atom);
   static bool updateSelected(const atom &_atom);
 
@@ -188,4 +204,8 @@
     //!> contains the current atom position
     AtomPosition,
+    //!> contains the current atom velocity
+    AtomVelocity,
+    //!> contains the current atom force
+    AtomForce,
     //!> contains the current atom's selection status
     AtomSelected,
@@ -253,4 +273,8 @@
   //!> list of channels when position needs to update
   static const Observable::channels_t AtomPositionChannels;
+  //!> list of channels when velocity needs to update
+  static const Observable::channels_t AtomVelocityChannels;
+  //!> list of channels when force needs to update
+  static const Observable::channels_t AtomForceChannels;
   //!> list of channels when selection needs to update
   static const Observable::channels_t AtomSelectedChannels;
