Laser pointer for continuously drawing arbitrary shapes on a surface, comprising: a laser generation unit configured to emit a laser beam (3, 8, 12); a MEMS mirror configured to deflect the emitted laser beam (3, 8, 12), wherein the deflection angle (Φ) of the MEMS mirror can be altered by means of applying a set of drive values to an input of the MEMS mirror; an orientation measurement unit configured to continuously determine a current orientation (θ i) of the laser pointer and to output said current orientation (θ i) at an output; a memory having an input that is connected to the output of the orientation measurement unit, the memory being configured to store a sequence of current orientations (θ i) sequentially received from the orientation measurement unit as a set (S, S', S") of orientation samples; a drive circuit having a first input connected to the memory and configured to retrieve said set (S, S', S") of orientation samples from the memory and a second input connected to the output of the orientation measurement unit and configured to receive the current orientation (θ i) from the orientation measurement unit; wherein the drive circuit is configured to generate said set of drive values by subtracting the current orientation (θ i) from each orientation sample of the set (S, S', S") of orientation samples and to successively apply the drive values of said set of drive values to the input of the MEMS mirror; wherein the memory is configured to continuously store new orientation samples while the MEMS mirror is driven by the drive circuit, and the drive circuit is configured to update the set of drive values when a new orientation sample is stored in the memory; and wherein the drive circuit is configured to repeatedly apply the set of drive values to the MEMS mirror. a laser generation unit configured to emit a laser beam (3, 8, 12); a MEMS mirror configured to deflect the emitted laser beam (3, 8, 12), wherein the deflection angle (Φ) of the MEMS mirror can be altered by means of applying a set of drive values to an input of the MEMS mirror; an orientation measurement unit configured to continuously determine a current orientation (θ i) of the laser pointer and to output said current orientation (θ i) at an output; a memory having an input that is connected to the output of the orientation measurement unit, the memory being configured to store a sequence of current orientations (θ i) sequentially received from the orientation measurement unit as a set (S, S', S") of orientation samples; a drive circuit having a first input connected to the memory and configured to retrieve said set (S, S', S") of orientation samples from the memory and a second input connected to the output of the orientation measurement unit and configured to receive the current orientation (θ i) from the orientation measurement unit; wherein the drive circuit is configured to generate said set of drive values by subtracting the current orientation (θ i) from each orientation sample of the set (S, S', S") of orientation samples and to successively apply the drive values of said set of drive values to the input of the MEMS mirror; wherein the memory is configured to continuously store new orientation samples while the MEMS mirror is driven by the drive circuit, and the drive circuit is configured to update the set of drive values when a new orientation sample is stored in the memory; and wherein the drive circuit is configured to repeatedly apply the set of drive values to the MEMS mirror.