For example, if I have a cube with the vertices $(0, 0, 0)$, $(1, 0, 0)$, $(0, 1, 0)$, $(0, 0, 1)$, $(1, 1, 0)$, $(1, 0, 1)$, $(0, 1, 1)$, and $(1, 1, 1)$, and I want to get to $(0.75, 0.25, 0.25)$, I'd start at $(0, 0, 0)$, then average with $(1, 1, 1)$ to get $(0.5, 0.5, 0.5)$, and then average with $(1, 0, 0)$ to reach my target of $(0.75, 0.25, 0.25)$.
Is it:
- Possible to get to every point inside of a polyhedron by averaging a current point and a vertex?
- Easy to determine which point to choose next?
- Easy to determine if a point is not reachable? i.e. outside the polyhedron or simply not reachable if 1 is not true?
So, first of all, your points are limited to ones with dyadic rational coordinates: points $(x,y,z) = (\frac{a}{2^k}, \frac{b}{2^k}, \frac{c}{2^k})$, where $a,b,c,k$ are integers. You'll never be able to get to $(\frac13, \frac13, \frac13)$, because you can't ever get a factor of $3$ into the denominator.
But maybe that's not very interesting, since you can get arbitrarily close to $(\frac13, \frac13, \frac13)$. In fact, for a cube, you can approximate any coordinate. This is not true for any polyhedron. For example, if your polyhedron is the tetrahedron, then you'll never be able to reach a point outside a 3D version of the Sierpinski triangle:
To see this, consider that if at one stage you're at an arbitrary point inside the tetrahedron, then in the next stage you can only be inside any of the $4$ scaled copies of the tetrahedron (scaled down by a factor of $\frac12$ fixing any of the $4$ vertices). Then in the second stage you can only be in one of the $4$ scaled copies of that region, and so on. Iterating this process produces the fractal above, and since we start within that fractal (at one of the $4$ corners) we can never leave.
As a general criterion, if in $d$ dimensions you have a polytope with fewer than $2^d$ vertices ($8$ vertices in $3$ dimensions) then the same argument shows that there are points in the polytope you can never get close to, because $k$ copies of the polytope, scaled by a factor of $\frac12$, have total volume $\frac{k}{2^d}$ of the original polytope. Of course, if $2^d$ or more vertices are poorly arranged, you might not be able to get everywhere either.
In the cube, there is a clear algorithm for approaching any point. The $x$-, $y$-, and $z$-coordinates are modified by averaging esssentially independently: at each step, we can average each coordinate with $0$ or with $1$. To do this strategically, look at the target point $(x,y,z) \in [0,1]^3$, write a $k$-bit binary representation of each of $x$, $y$, and $z$, and look at the bits from least to most significant to decide which point to average with.
For example, to get to $(0.75, 0.25, 0.25) = (0.11_2, 0.01_2, 0.01_2)$, we take the $\frac14$'s bits of all three coordinates (averaging with $(1,1,1)$) and then the $\frac12$'s bits of all three coordinates (averaging with $(1,0,0)$).
Suppose that, in general, we have a shape $S$ with vertices $v_1, v_2, \dots, v_k$. Let $S_1, S_2, \dots, S_k$ be copies of $S$, scaled down by a factor of $2$ through the point $v_1, v_2, \dots, v_k$ respectively.
Given a point $p^{(0)} = (x,y,z)$ that you want to get to (approximately or exactly), first find find some $S_i$ containing $(x,y,z)$. (If no such $S_i$ exists, then it's impossible to get to $(x,y,z)$.)
Then the strategy to get to $p^{(0)}$ is to:
We can iterate working backwards like this, with the logic "to get to $p^{(0)}$, we must get to $p^{(1)}$... to get to $p^{(1)}$, we must get to $p^{(2)}$... to get to $p^{(2)}$, we must get to $p^{(3)}$...". Eventually, one of three things will happen: