I wouldn't say this proves that SVG is turing complete.
I don't see why a perfect (i.e. correct and complete) SVG interpreter could solve the halting problem using this idea.
Computationally speaking, specifying each iteration manually is equivalent to directly drawing the final image - the difference is just the representation.<p>However, it's nice to see how expressive SVG is.
If SVG were actually Turing complete, that would be a serious bug in the SVG spec, since it would be possible for the SVG layout algorithm to never terminate.
Unfortunate about the performance. A side question I have is whether or not this is Turing complete given the lack of looping and recursion possible (at least in this example). The author defines each iteration 'manually.'
> Runs in Chromium 73.0.3683.103 after several seconds, seriously, this thing is slow!<p>Interestingly, this renders on my iPad almost instantly.<p>Also, fun fact: you can embed JavaScript in an SVG. Just add a script tag: <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/SVG/Element/scr...</a>
It seems trivial as a naive guess that SVG is TC if it can contain JavaScript, which is TC.<p>However, the posted solution seems inelegant and uncompelling. Simply iterating in SVG, which can infinitely scalable.<p>The author expresses apprehension in this closed issue: <a href="https://github.com/tom-p-reichel/svg-is-turing-complete/issues/1" rel="nofollow">https://github.com/tom-p-reichel/svg-is-turing-complete/issu...</a><p>It is mentioned that they intend to demonstrate this using feComposite in the source code.<p>There are bits and pieces of how one would prove TC for SVG.<p>A first step, would be identifying basic operations, as they have done. The next step would be compiling to a tag system, and simulate cyclic tag behavior.<p>It is expressed elsewhere that the lack of loops would exempt TC. Perhaps it can still be argued through DOM manipulation.
SVG can contain javascript, so yeah.<p>E.g. <a href="http://srufaculty.sru.edu/david.dailey/svg/clipdrag12.svg" rel="nofollow">http://srufaculty.sru.edu/david.dailey/svg/clipdrag12.svg</a>
On Chrome android I get a SIGSEGV in the GpuWatchdog process of Chrome. No stack gets decoded.<p>Interestingly, it only happens if I plug in or remove the power cable while the page is loading. It happens reliably.