Create a 3D WordCloud ?

Hi, I was wondering how a 3D version of WordCloud could be made :

WordCloud[EntityValue[CountryData[],{"Name","Population"}]]

There isn’t exactly a simple way to do this.
In Mathematica, you make 3D graphics with Graphics3D.

Graphics3D doesn’t have any support for Text directly, but you could make a Texture out of a text and apply it to a polygon.

I would begin by understanding Graphics3D and Texture.

sf324er43qge.gif

This is an easy transformation of 2D → 3D cloud. We add another z-dimension by distributing words randomly along z-axis. Get the data:

data = EntityValue[CountryData[], {"Name", "Population"}];

Define a function to add 3rd z-coordinate:

wordcloud3D[data_] := Module[{
   pr, wc = WordCloud[data]},
  
  pr = First[PlotRange /. AbsoluteOptions[wc]];
  
  Graphics3D[
   First[wc] /. Inset[s_, {x_, y_}] :>
     Text[s, {x, y, RandomReal[pr]}],
   Boxed -> False, SphericalRegion -> True]
  ]

wordcloud3D[data]

This will produce the image above.

Examples using texture,

icloud = Graphics[WordCloud[data][[1]], Background -> Black];

ParametricPlot3D[{Sin[u] Cos[v], Sin[u] Sin[v], Cos[u]}, {u, 0, 
  Pi}, {v, -Pi, Pi}, 
 PlotStyle -> Directive[Opacity[.8], Texture[Image[ic]]], 
 TextureCoordinateFunction -> ({-#5, #4} &), Mesh -> None, 
 PlotRange -> All, Boxed -> False, Axes -> False, 
 Lighting -> "Neutral", Background -> Black]

ParametricPlot3D[{Cos[t] (3 + Cos[u]), Sin[t] (3 + Cos[u]), 
  Sin[u]}, {t, 0, 2 Pi}, {u, 0, 2 Pi}, 
 PlotStyle -> Directive[Opacity[.8], Texture[Image[ic]]], 
 TextureCoordinateFunction -> ({#4, #5} &), Mesh -> None, 
 PlotRange -> All, Boxed -> False, Axes -> False, 
 Lighting -> "Neutral", Background -> Black]

p.s. image upload doesn’t work so I just put codes.

Nice 3D versions of WordCloud. Here is how @Jaebum Jung word clouds look like:

3D_Word_cloud.gif

Where can I find this software? Actually, I did not find any 3d word cloud application.

The software is Mathematica, the language is Wolfram Language.