# \[ANN\] eigshow.jl, a demonstrator for EVD/SVD intuition

**URL:** <https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340>\
**Category:** Package Announcements\
**Tags:** linearalgebra, teaching, makie\
**Created:** [October 25, 2021, 3:38pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340 "2021-10-25T15:38:10Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [October 25, 2021, 3:38pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/1 "2021-10-25T15:38:10Z")

</div>

A long-time favorite linear algebra teaching widget of mine is matlab’s EIGSHOW, which lets you demonstrate the geometric intuition behind the EVD and the SVD in two dimensions. It was pulled from core matlab quite a while ago, but it’s still available as part of the “Cleve Lab” package.

As an exercise in learning interactivity in [Makie](https://github.com/JuliaPlots/Makie.jl), I have [ported eigshow to Julia](https://gist.github.com/tobydriscoll/f90d93e1905b9599363c0094353d02fe). Enjoy!

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [October 25, 2021, 3:53pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/2 "2021-10-25T15:53:01Z")

</div>

Looks cool! I’ll definitely try that out.

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [October 25, 2021, 5:48pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/3 "2021-10-25T17:48:53Z")

</div>

Awesome, I’ll read through your code and learn about Makie as well! Never took the time to understand it properly.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [October 25, 2021, 6:29pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/4 "2021-10-25T18:29:32Z")

</div>

For the lazy ones, that just want to check it out 🙂

![eigshow](https://global.discourse-cdn.com/julialang/original/3X/a/9/a9bc1bc03d397b970d4cd6bd8dd0a17dde3d9658.gif)

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [October 25, 2021, 6:45pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/5 "2021-10-25T18:45:49Z")

</div>

For further insights on `eigshow()`, read Cleve Moler’s weeks[-1](https://blogs.mathworks.com/cleve/2013/07/08/eigshow-week-1), [-2](https://blogs.mathworks.com/cleve/2013/07/22/eigshow-week-2) and [-3](https://blogs.mathworks.com/cleve/2013/08/05/eigshow-week-3/).

---

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [October 26, 2021, 12:58pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/6 "2021-10-26T12:58:39Z")

</div>

I guess your taking the time to do this makes me the laziest of all. 😁

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [October 27, 2021, 12:14pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/7 "2021-10-27T12:14:45Z")

</div>

@tobydriscoll it would be super cool if you could register a `EigShow.jl` package with this app. It is super useful for educational purposes and we could point students to `using EigShow` instead of the Gist. You could also add the links shared here in the README 🙂

---

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [November 18, 2021, 3:26pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/8 "2021-11-18T15:26:40Z")

</div>

It’s a good thought. I communicated with Cleve Moler about it to get his blessing and never heard back. Since his implementation says it’s copyrighted, I’m not sure if I should proceed. I didn’t copy or imitate the code in any way, but the “look and feel” is essentially all his.

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [March 25, 2022, 11:49am UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/9 "2022-03-25T11:49:25Z")

</div>

@tobydriscoll another reason for creating a package is that we can specify exactly the version of Makie that was used. There is no guarantee that your gist will work in the future due to breaking changes in dependencies.

---

<div class="post-metadata">

**Author:** ![tobydriscoll](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobydriscoll/32/1843_2.png) [@tobydriscoll](https://discourse.julialang.org/u/tobydriscoll)\
**Post date:** [March 29, 2022, 3:26pm UTC](https://discourse.julialang.org/t/ann-eigshow-jl-a-demonstrator-for-evd-svd-intuition/70340/10 "2022-03-29T15:26:52Z")

</div>

I have filed to register as the package EigenShow. Until the waiting period is complete, it can be installed directly from:

[https://github.com/tobydriscoll/EigenShow.jl](https://github.com/tobydriscoll/EigenShow.jl)
