We present an optimal-time algorithm for computing (an implicit representation of) the shortest-path map from a fixed source s on the surface of a convex polytope P in three dimensions. Our algorithm runs in O(n log n) time and requires O(n log n) space, where n is the number of edges of P. The algorithm is based on the O(n log n) algorithm of Hershberger and Suri for shortest paths in the plane , and similarly follows the continuous Dijkstra paradigm, which propagates a "wavefront" from s along ∂P. This is effected by generalizing the concept of conforming subdivision of the free space used in , and adapting it for the case of a convex polytope in ℝ3, allowing the algorithm to accomplish the propagation in discrete steps, between the "transparent" edges of the subdivision. The algorithm constructs a dynamic version of Mount's data structure  that implicitly encodes the shortest paths from s to all other points of the surface. This structure allows us to answer single-source shortest-path queries, where the length of the path, as well as its combinatorial type, can be reported in O(log n) time; the actual path π can be reported in additional O(k) time, where k is the number of polytope edges crossed by π. The algorithm generalizes to the case of m source points to yield an implicit representation of the geodesic Voronoi diagram of m sites on the surface of P, in time O((n + m) log(n + m)), so that the site closest to a query point can be reported in time O(log(n + m)).