NiMo (Nets in Motion) is a visual environment aimed to support totally graphic programming in Data Flow style, with a strong functional inspiration. Solutions of growing complexity can be built using a small set of graphic primitives, which allows dealing with higher order, partial application, laziness, polymorphism and type inference. The net to be executed is exactly the one drawn by the user. It evolves showing all transformations of data and processes. The user has direct control on the computation state and can change data, processes and/or control at any point of the execution. This is feasible because of the combination of several peculiarities: the source code is exactly the computation initial state, activation state and evaluation degree are explicit, execution can be done step-by-step, and between steps the user can modify the net. Therefore even incomplete programs can be run.