You might be interested in this similar idea that I wrote for one of our promo videos. The words fly into the frame from off-screen until it is very crowded...
frequency=EntityValue[WolframLanguageData[EntityClass["WolframLanguageSymbol","FunctionalityAreas"->ContainsAny[{"StatisticalDistributionSymbols","StatisticsSymbols","NetSymbols","FileSystemSymbols","ComparisonOperatorSymbols","AudioSymbols","LinearAlgebraSymbols","MachineLearningSymbols","DateSymbols","ClusteringSymbols","StatisticalTestSymbols","StatisticalProcessSymbols","ChartSymbols","PolynomialSymbols","MachineSymbols","URLSymbols","VectorTeeOperatorSymbols","EntitySymbols","GeoGraphicsSymbols","RecurrenceSymbols","GeodesySymbols","SolvingSymbols","AssociationSymbols","GraphBooleanPropertySymbols","ArraySymbols","TensorSymbols","TemplateSymbols","TimeSeriesSymbols","MinMaxSymbols","GroupTheorySymbols","LogicSymbols","FittingSymbols","ExtractionSymbols","BooleanSymbols","NumericsPrecisionSymbols","NamedGraphSymbols","MatrixSymbols","HistogramSymbols","GeoGraphicsPrimitiveSymbols","FinanceSymbols","GeometricSceneSymbols","OptimizationSymbols"}]]],EntityProperty["WolframLanguageSymbol","Frequencies",{"Corpus"->"All"}],"EntityAssociation"]//DeleteMissing;fixedData=KeyDrop[ReverseSort[Join[KeyMap[Last,TakeLargest[frequency,Round[600]]],<|"Classify"->0.0015,"NetTrain"->0.001|>]],{"Transpose","ConstantArray"}];final=WordCloud[fixedData,WordSpacings->{5,1},ColorFunction->ColorData["RustTones"],ImageSize->{640,360},ScalingFunctions->"Log",MaxItems->All];zoomBySpace[z_]:=Show[final,ImageSize->{1920,1080},PlotRange->{{-933.`,933.`},{-524.5`,524.5`}}z];VideoGenerator[zoomBySpace[#/10+0.01]&,10,GeneratedAssetLocation->"zoombyspace4.mp4"]