
 
sculpting methods, we can cite a method using a 
spring grid linking the voxels and the diffusion is 
made from one voxel to his neighbour, reaching a 
stable state (Dewaele, 2004). A similar method, 
based on automata cells, is presented by (Druon, 
2004 or Arata 1999), the diffusion algorithm uses 
artificial intelligence laws to spread matter from a 
voxel to one other, but the system still have to reach 
a stable state. 
Approaches based on discrete potential fields 
seem to be interesting because the computation 
process does not depend on the number of operation 
between tool and object. We denoted that the main 
difficulty is to provide adapted tools to the artists. 
We can not imagine a traditional sculptor interacting 
with unrealistic tools like an ellipsoid or 
mathematical functions. Using hierarchical 
representation for the object material and the tool is 
interesting but the computation process of the 
interaction is often expensive and difficult. The 
purpose of this paper is to propose a simple but fast 
method to deform a voxel-based object. Potential 
field values are defined between 0 (the voxel is 
empty) and 1 (the voxel is filled). If the value lies in 
]0, 1[, the voxel is not completely filled. Material 
can be added with a specific tool. 
The defined tools will be used in our virtual 
sculpting environment (Raffin, 2004). As previously 
said, the main goal of this project is to provide a real 
time system of interaction on common computers. 
Interaction must be realistic and real-time. The 
conservation volume aspect is also important. In this 
approach, we are developing a set of rapid 
algorithms to control and modify a sculpting 
environment. We also use the selection of the usable 
parts of a tool, as described in (Ayasse, 2000) to 
accelerate object/tool collision detection. The first 
part of this paper will introduce the diffusion method 
of an action in the object. The second part describes 
the distribution of the matter. Finally, we present 
some images of the deformations and propose some 
future works to improve our method. 
2  SIMPLE DIFFUSION METHOD 
Assuming the collision test between the object and 
the tool has been done, we know the tool voxel(s) 
that interacts with the object voxel(s). For the 
considered object voxel, the matter it contains will 
be suppressed. Then, this matter must be propagated 
through the object to conserve its volume during 
time. 
In our method, we propose to displace matter in the 
direction of the normal of the voxel tool which is 
acting. Whatever the tool’s displacement, when it 
reaches the object, we can determine the collided 
voxels. If a transformation is applied to the tool, the 
representation in the current grid that contains the 
object and its environment must be recomputed. It 
implies that each transformation of the tool is 
embedded in the sculpting grid. 
Firstly, we propose to explain our method in a 
two dimensions space to avoid confusion (see Figure 
1). The object is represented in cyan and is initially a 
simple rectangular grid. The tool is an isotropic grid 
of 13 voxels represented on the left of the figure. 
The tool interacts with voxels of the object and we 
focus our discussion on the dark blue voxel of the 
tool. Its normal 
N
ur
, have two components along the 
axis (
1
n
r
 and 
2
n
ur
), implying 
12
Nnn=+
uururuur
. The 
corresponding voxel in the object contains an 
amount Q of matter that needs to be diffused through 
the object. Q is distributed along the axis, which 
support the normal components, in q
1
 and q
2
, with 
Q=q
1
+q
2
. 
1
n
r
2
n
ur
N
ur
q
1 
q
2 
Tool
 
Object
 
Matter 
repartition
 
Object
modification
Q 
 
Figure 1: principle of matter diffusion. 
 
To distribute these two parts of Q, we cross the 
voxels following the normal components, until a 
non-filled voxel is encountered. It says that, if the 
initial object is totally filled with matter, the moving 
matter  q
i
, which came from the collision with the 
tool, will be added on a boundary, in the direction of 
a normal component. If an encountered voxel have 
an amount lesser than the maximum, it is filled until 
the quantity q
i
 is set to 0. 
This method permits to know very quickly if a 
voxel on the object surface is receiving matter and 
the quantity it would receive. Due to its simplicity, it 
does not provide the diffusion in the object (in all 
cells of the grid) but towards its surface. 
SIMPLE AND EFFICIENT TOOLS FOR VIRSCULPT
437