What does UMAP do on a 3d data? I have a high dimensional data and when I applied UMAP on the whole data, it didn't seem to find a low dimensional manifold. Out of curiosity, I chose 3 important features  and applied UMAP on that subset of the data. Here is result of applying UMAP on a data with 3 features.

Then I just plotted the data in 3d to see how it differs from UMAP and here is the result:

My question is, what does UMAP do on a data with 3 dimensions? There is no manifold to find. Does it cluster the data? (I applied spectral clustering on Laplacian kernel of the data and the data points are colored based on the spectral clustering output).

UMAP applies to 3D data the same algorithm as always, there is no special treatment for 3D data. UMAP is intended to be used for nonlinear dimensionality reduction, so applying it without dimensionality reduction ($\mathbb R^3\to\mathbb R^3$) is a little odd but probably instructive.
As explained here, UMAP creates a nerve for the original dataset and then tries to embed this nerve into the target space while preserving the nerve weights as well as possible. This is an optimization problem that is solved iteratively.
Now, clearly, a good preserving map from $\mathbb R^3\to\mathbb R^3$ would be the identity. But the assignment of a nerve to a dataset, controlled by various UMAP parameters like e.g. n_neighbors, which restricts the number of points considered locally, is not injective, and hence there are many different datasets that get assigned the same nerve by UMAP. So it is clear that nerve preserving doesn't mean dataset preserving even for $\mathbb R^3\to\mathbb R^3$.
Unfortunately, from the three-dimensional plots, it is not possible to judge how the result of UMAP has changed the data other than by a mere orthogonal transformation. But changes are usually due to

*

*the loss of information created by the construction of the nerve as described above,

*the above iterative optimization converging to a bad local minimum (rather unlikely in your situation),

*UMAP parameters like e.g. metric if something other than euclidean is used,

*UMAP parameters like min_dist, which makes the embedded points be at least min_dist apart.

