Community Tip - When posting, your subject should be specific and summarize your question. Here are some additional tips on asking a great question. X
I don't believe there is any way to create widgets at run. A solution and what i do it to just change the content (text or image src) via JS as needed. So for example i have localization of my experiences and i load a JSON object with all the things i want to change for each language. Some are images with local language text on them others are raw text for things like buttons and toggles. Then when you pick a language i just blast thru the section of this object with the chosen language key and feed it all into a $scope.setWidgetProp function.
With the exception of the problem you have found about 3D images not accepting new widths (and also not recalculating 'auto' widths) this works well.