<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing any discussions tagged with Graphics and Visualization sorted by most viewed.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1108310" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1872608" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1108667" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1108617" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1108324" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1034626" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/403693" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/108265" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2593151" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/122095" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1085633" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/413928" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/246929" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/315748" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/139463" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/434022" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/995095" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/175891" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2100897" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/86994" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1108310">
    <title>[?] Use Plot Labels for Parametric curves?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1108310</link>
    <description>Below is a code snippet to plot a handful of curves with some plot labels. For some reason only the first label is used and not the other four. What am I missing here? I&amp;#039;ve successfully used PlotLabels for parametric curves before but they seem to fail me here. Got any ideas??:&#xD;
&#xD;
    lmt=10&#xD;
    &#xD;
    qq[zets_]=1/Sqrt[1+zets^2]^3&#xD;
    &#xD;
    zets[rr_,eps_,eta_]=eps (1-rr^2) (1+eta (1+rr^2))&#xD;
    &#xD;
    demcurves=Array[qq[zets[rr,2 #/lmt,0]]&amp;amp;,lmt/2]&#xD;
    &#xD;
    Plot[demcurves,{rr,0,1}]&#xD;
    &#xD;
    demlabels = Map[ToString,Array[qqzz[N[2/lmt]#]&amp;amp;,lmt/2]]&#xD;
    &#xD;
    Plot[demcurves,{rr,0,1},PlotLabels -&amp;gt; Placed[demlabels,Left]]</description>
    <dc:creator>Anthony DeGance</dc:creator>
    <dc:date>2017-05-25T17:19:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1872608">
    <title>⭐ [COVID] Computational Research HUB For Novel Coronavirus: Data, Code, Visualizations, Notebooks</title>
    <link>https://community.wolfram.com/groups/-/m/t/1872608</link>
    <description>*Short URL to share this post*: https://wolfr.am/coronavirus&#xD;
&#xD;
***JOIN*** *our* ***Medical Sciences*** *group for the latest updates &amp;amp; best networking*: https://wolfr.am/MedicalSciences&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
This post is intended to be the hub for Wolfram resources related to novel coronavirus disease COVID-19 that originated in Wuhan, China. The larger aim is to provide a forum for disseminating ways in which Wolfram technologies and coding can be utilized to shed light on the virus and pandemic. Possibilities include using the Wolfram Language for data-mining, modeling, analysis, visualizations, and so forth. Among other things, we encourage comments and feedback on these resources. Please note that this is intended for technical analysis and discussion supported by computation. Aspects outside this scope and better suited for different forums should be avoided. Thank you for your contribution!&#xD;
&#xD;
## ________________________________________ &#xD;
## FEATURED CONTENT&#xD;
&#xD;
- [COVID-19 Livestream Notebook March 24][8] by Stephen Wolfram&#xD;
- [Agent-Based Networks Models for COVID-19][9] by Christopher Wolfram&#xD;
- [Live-Stream: Exploring Pandemic Data][10] by Stephen &amp;amp; Christopher Wolfram + guests &#xD;
- [Live-Stream: Exploring and Explaining Epidemic Modeling][11] by Stephen &amp;amp; Christopher Wolfram + guests &#xD;
&#xD;
## ________________________________________ &#xD;
## [CALL for Making COVID-19 Data Computable  (*link*)][12]&#xD;
	&#xD;
More pandemic-related information and data sets emerging every day. We invite people in the community to contribute to making more data surrounding this topic computable. Here is a call to action with some recommendations for people who want to do more, whether it&amp;#039;s just pointing out relevant data sources, or taking the time to make some of that data computable and more instantly ready for other people to explore: https://wolfr.am/COVID-19-DATA .&#xD;
&#xD;
&#xD;
## ________________________________________ &#xD;
## [Curated Computable Data (*link*)][13] &#xD;
&#xD;
[FOLLOW THIS LINK][14] to see all available COVID-19 data repositories ready for computation in the Wolfram Language .&#xD;
&#xD;
[Changes in Updates to SARS-CoV-2 Sequences in the Wolfram Data Repository][16]&#xD;
&#xD;
We have published and are continuously updating the Wolfram Data Repository entries. Below are a few key ones. Follow the link above to browse all repositories. We encourage you to make [*your own contributions*][15] of curated data relevant to COVID-19.&#xD;
&#xD;
&#xD;
&amp;gt; **Pandemic Data for Novel Coronavirus COVID-19**&#xD;
&#xD;
&amp;gt; https://www.wolframcloud.com/obj/resourcesystem/published/DataRepository/resources/Epidemic-Data-for-Novel-Coronavirus-COVID-19&#xD;
&#xD;
&amp;gt; **Genetic Sequences for the SARS-CoV-2 Coronavirus**&#xD;
&#xD;
&amp;gt; https://datarepository.wolframcloud.com/resources/Genetic-Sequences-for-the-SARS-CoV-2-Coronavirus&#xD;
&#xD;
&amp;gt; **Patient Medical Data for Novel Coronavirus COVID-19**&#xD;
&#xD;
&amp;gt; https://datarepository.wolframcloud.com/resources/Patient-Medical-Data-for-Novel-Coronavirus-COVID-19&#xD;
&#xD;
&amp;gt; **COVID-19 Hospital Resource Use Projections**&#xD;
&#xD;
&amp;gt; https://datarepository.wolframcloud.com/resources/COVID-19-Hospital-Resource-Use-Projections&#xD;
&#xD;
&amp;gt; **OECD Data: Hospital Beds Per Country**&#xD;
&#xD;
&amp;gt; https://datarepository.wolframcloud.com/resources/OECD-Data-Hospital-Beds-Per-Country&#xD;
&#xD;
&amp;gt; **Hospital Beds Per US State**&#xD;
&#xD;
&amp;gt; https://datarepository.wolframcloud.com/resources/Hospital-Beds-Per-US-State&#xD;
&#xD;
## ________________________________________ &#xD;
## [Computational Publications (*link*)][17] &#xD;
&#xD;
We encourage you to share your computational explorations relevant to coronavirus on Wolfram Community as stand-alone articles and then comment with their URL links on this discussion thread. We will summarize these articles in the following list: &#xD;
&#xD;
### ________________________________&#xD;
###FEATURED&#xD;
&#xD;
&amp;gt; **COVID-19 Livestream Notebook March 24** by Stephen Wolfram&#xD;
&#xD;
&amp;gt; https://www.wolframcloud.com/obj/s.wolfram/Published/COVID-19-Livestream-March-24.nb&#xD;
&#xD;
&amp;gt; **Agent-Based Networks Models for COVID-19** by Christopher Wolfram&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1907703&#xD;
&#xD;
&amp;gt; **Epidemiological Models for Influenza and COVID-19** by Robert Nachbar&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1896178&#xD;
&#xD;
&amp;gt; **Epidemic simulation with a polygon container** by Francisco Rodríguez&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1901002&#xD;
&#xD;
&amp;gt; **Distance to nearest confirmed US COVID-19 case** by Chip Hurst &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1911583&#xD;
&#xD;
&#xD;
### ________________________________&#xD;
### EPIDEMIC MODELING: SIMULATION&#xD;
&#xD;
&#xD;
&amp;gt; **Epidemic simulation with a polygon container** by Francisco Rodríguez&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1901002&#xD;
&#xD;
&amp;gt; **Agent based epidemic simulation** by Jon McLoone&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1900481&#xD;
&#xD;
&amp;gt; **Modeling the spatial spread of infection diseases in the US** by Diego Zviovich &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1889072&#xD;
&#xD;
&amp;gt; **Geo-spatial-temporal COVID-19 simulations and visualizations over USA** by Diego Zviovich &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1900514&#xD;
&#xD;
&amp;gt; **Life, Liberty, and Lockdowns: cellular automaton approach** by Philip Maymin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2181433&#xD;
&#xD;
### ________________________________&#xD;
### EPIDEMIC MODELING: COMPARTMENTAL&#xD;
&#xD;
&amp;gt; **Teaching notebook on disease models** by Gareth Russell&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2694698&#xD;
&#xD;
&amp;gt; **Stochastic Epidemiology Models with Applications to the COVID-19** by Robert Nachbar&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1980051&#xD;
&#xD;
&amp;gt; **COVID19: Italian SIRD estimates and prediction** by Christos Papahristodoulou&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1984320&#xD;
&#xD;
&amp;gt; **Solver for COVID-19 epidemic model with the Caputo fractional derivatives** by Alexander Trounev&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1976589&#xD;
&#xD;
&amp;gt; **EpiPlay: using Mathematica to gamify education in epidemiology** by Rui Alves&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2535927&#xD;
&#xD;
&amp;gt; **Epidemiological Model for repetitive rapid testing for COVID-19** by Diego Zviovich&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2075883&#xD;
&#xD;
&amp;gt; **Phase transition of a SIR agent-based models** by Diego Zviovich &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1977230&#xD;
&#xD;
&amp;gt; **A simple estimate of covid-19 fatalities based on past data** by Kay Herbert&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1959438&#xD;
&#xD;
&amp;gt; **SIR Model with Log-normal infected periods** by Diego Zviovich &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1946292&#xD;
&#xD;
&amp;gt; **SEI2HR-Econ model with quarantine and supplies scenarios** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1937880&#xD;
&#xD;
&amp;gt; **COVID-19 - Policy Simulator - Can you find the perfect policy?** by Jan Brugard&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1931352&#xD;
&#xD;
&amp;gt; **Epidemiological Models for Influenza and COVID-19** by Robert Nachbar&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1896178&#xD;
&#xD;
&amp;gt; **Exploring Epidemiological Modeling** by Jordan Hasler&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1920119&#xD;
&#xD;
&amp;gt; **SEI2HR model with quarantine scenarios** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1926505&#xD;
&#xD;
&amp;gt; **The SIR Model for Spread of Disease** by Arnoud Buzing&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1903289&#xD;
&#xD;
&amp;gt; **COVID-19 - R0 and Herd Immunity - are we getting closer?** by Jan Brugard&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1911422&#xD;
&#xD;
&amp;gt; **Basic experiments workflow for simple epidemiological models** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1895675&#xD;
&#xD;
&amp;gt; **Scaling of epidemiology models with multi-site compartments** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1897377&#xD;
&#xD;
&amp;gt; **WirVsVirus 2020 hackathon participation** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1907256&#xD;
&#xD;
&amp;gt; **An SEIR like model that fits the coronavirus infection data** by Enrique Garcia Moreno&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1888335&#xD;
&#xD;
&amp;gt; **A SEIRD Model For COVID-19 Using DDEs** by Luis Borgonovo&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1996374&#xD;
&#xD;
&amp;gt; **A Neat Package for Compartmental Model Diagrams** by Hamza Alsamraee&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2078640&#xD;
&#xD;
&amp;gt; **Redesign of didactics of S(E)IR(D) -&amp;gt; SI(EY)A(CD) models of epidemics** by Thomas Colignatus&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2004784&#xD;
&#xD;
&amp;gt; **COVID-19 SIR models: transmission, vaccination, herd immunity dynamics revealed** by Athanasios Paraskevopoulos&#xD;
&#xD;
&amp;gt;  https://community.wolfram.com/groups/-/m/t/3008488&#xD;
&#xD;
### ________________________________&#xD;
### EPIDEMIC MODELING: LOGISTIC&#xD;
&#xD;
&amp;gt; **COVID-19 pandemic data in Italy** by Riccardo Fantoni &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1909687&#xD;
&#xD;
&amp;gt; **Predicting Coronavirus Epidemic in United States** by Robert Rimmer &#xD;
&#xD;
&amp;gt;https://community.wolfram.com/groups/-/m/t/1906954&#xD;
&#xD;
&amp;gt; **Tracking Coronavirus Testing in the United States** by Robert Rimmer &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1902302&#xD;
&#xD;
&amp;gt; **Logistic Model for Quarantine Controlled Epidemics** by Robert Rimmer &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1900530&#xD;
&#xD;
&amp;gt; **Updated: coronavirus logistic growth model: China** by Robert Rimmer&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1890271&#xD;
&#xD;
&amp;gt; **Coronavirus logistic growth model: China** by Robert Rimmer&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1887435&#xD;
&#xD;
&amp;gt; **Coronavirus logistic growth model: Italy and South Korea** by Robert Rimmer&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1887823&#xD;
&#xD;
&amp;gt; **Coronavirus logistic growth model: South Korea** by Robert Rimmer&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1894561&#xD;
&#xD;
&amp;gt; **Logistic growth model for epidemic Covid-19 in Colombia** by Diego Ramos&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2092786&#xD;
&#xD;
### ________________________________&#xD;
### GENOMICS &#xD;
&#xD;
&amp;gt; **Analyzing the spread of SARS-CoV-2 variants in California** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2205357&#xD;
&#xD;
&amp;gt; **Analyzing the spread of SARS-CoV-2 variants in Florida** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2206874&#xD;
&#xD;
&amp;gt; **Analyzing Nextstrain Data with WFR Newick Functions (COVID-19/SARS-CoV-2)** by John Cassel&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1958952&#xD;
&#xD;
&amp;gt; **Finding and analyzing a COVID subvariant in Australia** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2342489&#xD;
&#xD;
&amp;gt; **Analyzing SARS-CoV-2 Genetic Sequences** by John Cassel &amp;amp; Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://blog.wolfram.com/2021/08/19/newick-trees-proximity-resources-and-accessions-analyzing-sars-cov-2-genetic-sequences/&#xD;
&#xD;
&amp;gt; **Estimating the number of times the SARS CoV-2 virus has replicated** by Carlos Munoz&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1943243&#xD;
&#xD;
&amp;gt;**From sequenced SARS-CoV-2 genomes to a phylogenetic tree** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt;https://community.wolfram.com/groups/-/m/t/1961461&#xD;
&#xD;
&amp;gt; **Genome analysis and the SARS-nCoV-2** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1874816&#xD;
&#xD;
&amp;gt; **Visualizing Sequence Alignments from the COVID-19** by Jessica Shi&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1875352&#xD;
&#xD;
&amp;gt; **A walk-through of the SARS-CoV-2 nucleotide Wolfram resource**  by  John Cassel&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1887456&#xD;
&#xD;
&amp;gt; **Geometrical analysis of genome for COVID-19 vs SARS-like viruses** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1878824&#xD;
&#xD;
&amp;gt; **Chaos Game For Clustering of Novel Coronavirus COVID-19**  by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1875994&#xD;
&#xD;
### ________________________________&#xD;
### DATA ANALYSIS&#xD;
&#xD;
&amp;gt; **Optimal Annual COVID-19 Vaccine Boosting Dates Following Previous Booster Vaccination or Breakthrough Infection** by Jeffrey Townsend&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/3341399&#xD;
&#xD;
&amp;gt; **Probability of early infection extinction depends linearly on the virus clearance rate** by Nóra Juhász&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/3307502&#xD;
&#xD;
&amp;gt; **Detecting Global Community Structure in a COVID-19 Activity Correlation Network** by Hiroki Sayama&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/3056172&#xD;
&#xD;
&amp;gt; **Analyzing trends of COVID-19 through public news feeds** by Silvia Hao&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2569395&#xD;
&#xD;
&amp;gt; **Deep neural network detection &amp;amp; clinical staging of COVID-19 chest X-rays** by Peter Riley&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2389110&#xD;
&#xD;
&amp;gt; **COVID-19 - The Swedish Experiment - Is it working?** by Jan Brugard&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1974412&#xD;
&#xD;
&amp;gt; **A simple COVID-19 spread model** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1945196&#xD;
&#xD;
&amp;gt; **COVID19: The performance of the Swedish strategy** by Christos Papahristodoulou&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1990972&#xD;
&#xD;
&amp;gt; **Exploring social trends on Covid-19 pandemic using WikipediaData** by Jofre Espigule-Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1931508&#xD;
&#xD;
&amp;gt; **Google Mobility Data** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1946686&#xD;
&#xD;
&amp;gt; **Understanding Aggregate COVID Curves** by Christopher Wolfram&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2068457&#xD;
&#xD;
&amp;gt; **Apple mobility trends data visualization** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1942813 &#xD;
&#xD;
&amp;gt; **Computing COVID-19 Spread Rates in US Cities** by Daniel Lichtblau&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1930261&#xD;
&#xD;
&amp;gt; **COVID-19 data and the Newcomb Benford Distribution** by Gustavo Delfino&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1913908 &#xD;
&#xD;
&amp;gt; **Short-time trends for COVID-19**, by Fabian Wenger&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1912710&#xD;
&#xD;
&amp;gt; **What countries are hit hard by COVID19 outbreak?** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1904507&#xD;
&#xD;
&amp;gt; **COVID19 in Iran: under-diagnosis issue** by Mads Bahrami &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1891140&#xD;
&#xD;
&amp;gt; **Coronavirus analysis: descriptive statistics with SQL functions** by Damian Calin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2206078&#xD;
&#xD;
&amp;gt; **Covid-19 vaccine campaigns efficacy analysis** by Damian Calin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2383314&#xD;
&#xD;
&amp;gt; **Argentina: COVID-19 Data Analysis** by Tobias Canavesi&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1932910&#xD;
&#xD;
&amp;gt; **Analysis of the Change in Phillips Curve After COVID-19 with Regression** by Seojin Yoon&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2055704&#xD;
&#xD;
&amp;gt; **COVID wave alert: statistical analysis and visualization** by Antonio Neves&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2115658&#xD;
&#xD;
&amp;gt; **Predicting COVID-19 using cough sounds classification** by Siria Sadeddin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2166833&#xD;
&#xD;
&amp;gt; **Covid-19 vaccination data analysis using SQL functions** by Damian Calin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2324474&#xD;
&#xD;
&amp;gt; **Analyzing COVID-19 vaccine sentiment over time** by Arshaan Sayed&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2317293&#xD;
&#xD;
&amp;gt; **VAERS data analysis using SQL functions** by Damian Calin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2351726&#xD;
&#xD;
&amp;gt; **Correlating COVID-19 government measures to biweekly/daily outbreaks** by Arshaan Sayed&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2362327&#xD;
&#xD;
&amp;gt; **Plotting Covid19 sentiment in different regions of Chennai** by Aditya Sairam Prakash&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2388236&#xD;
&#xD;
### ________________________________&#xD;
### DATA VISUALIZATIONS&#xD;
&#xD;
&amp;gt; **CDC COVID19 vaccination data across US counties** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2282418&#xD;
&#xD;
&amp;gt; **Top 20 COVID countries HeatMap by absolute death and death in ppm** by Rodrigo Murta&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2004800&#xD;
&#xD;
&amp;gt; **COVIDWORLD app: current data and visualizations for SARS-CoV2 pandemic** by Rui Alves&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2473065&#xD;
&#xD;
&amp;gt; **US Counties COVID-19 confirmed cases by population density timelines** by  Bob Sandheinrich&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1992898&#xD;
&#xD;
&amp;gt; **3D Modeling of the SARS-CoV-2 Virus in the Wolfram Language** by Jeff Bryant&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1989540&#xD;
&#xD;
&amp;gt; **California COVID19 Data** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2132204&#xD;
&#xD;
&amp;gt; **COVID-19 progress in Peru macro regions: coast vs mountain vs jungle** by Francisco Rodríguez&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1965079&#xD;
&#xD;
&amp;gt; **COVID-19 reopening criterion: a simple visualization** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1962615&#xD;
&#xD;
&amp;gt; **100 Days of COVID19 Over US Counties** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1956368&#xD;
&#xD;
&amp;gt; **Population Density Map** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1955760&#xD;
&#xD;
&amp;gt; **Google Mobility Data** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1946686&#xD;
&#xD;
&amp;gt; **COVID19 Case-Fatality Ratio, Income, and Age: Simple Visualization** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1939045&#xD;
&#xD;
&amp;gt; **Data Analysis of Coronavirus in Mexico** by Ivan Martinez&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1927657&#xD;
&#xD;
&amp;gt; **Confirmed COVID-19 Cases in Catalonia** by Bernat Espigulé Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1919468&#xD;
&#xD;
&amp;gt; **Distance to nearest confirmed US COVID-19 case** by Chip Hurst &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1911583&#xD;
&#xD;
&amp;gt; **COVID19 Confirmed Cases: US Counties** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1950980&#xD;
&#xD;
&amp;gt; **COVID19 data visualization across US counties** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2119049&#xD;
&#xD;
&amp;gt; **Maps for Visualizing Covid-19&amp;#039;s Effect** by Eric Mockensturm&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1934457&#xD;
&#xD;
&amp;gt; **US Counties COVID-19 deaths plot** by Bob Sandheinrich&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1918332&#xD;
&#xD;
&amp;gt; **Comparing the spread of COVID-19 between countries**, Jan Brugard&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1905992&#xD;
&#xD;
&amp;gt; **NY Times COVID-19 data visualization** by Anton Antonov&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1911668&#xD;
&#xD;
&amp;gt; **COVID-19 cases for each administrative division in Spain** by Bernat Espigulé Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1910116&#xD;
&#xD;
&amp;gt; **Propagation risk of COVID-19 by local contact in Spain (10 - 14 March)** by Bernat Espigulé Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1898126&#xD;
&#xD;
&amp;gt; **Visualizing the Pandemic Data COVID-19** by Martijn Froeling&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1899870&#xD;
&#xD;
&amp;gt; **COVID-19 visualization of turning point** by Isao Maruyama&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1899911&#xD;
&#xD;
&amp;gt; **Mapping &amp;#034;Live&amp;#034; COVID Data on a Globe** by  Gabriel Lemieux &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1902102&#xD;
&#xD;
&amp;gt; **Novel Coronavirus COVID-19 in Brazil** by Estevao Teixeira &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1905950&#xD;
&#xD;
&amp;gt; **Mapping Novel Coronavirus COVID-19 Outbreak** by Jofre Espigule-Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1868945&#xD;
&#xD;
&amp;gt; **Ways to visualize COVID-19 simulation results?** by Kyle Keane&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1962739&#xD;
&#xD;
&amp;gt; **General and COVID-19 deaths in Sweden** by Oscar Rodriguez&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2006377&#xD;
&#xD;
&amp;gt; **COVID19 Tokyo per days of the week** Isao Maruyama&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2133807&#xD;
&#xD;
### ________________________________&#xD;
### DATA PROCESSING&#xD;
&#xD;
&amp;gt; **Cov-Tell: Daily COVID-19 Updates with Alexa (made with Wolfram APIFunction)** by Jessica Shi&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1958307&#xD;
&#xD;
&amp;gt; **Build a COVID-19 Chest X-Ray Image Uploader with Cloud &amp;amp; Data Drop** by Jofre Espigule-Pons&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1919770&#xD;
&#xD;
&amp;gt; **Scraping OpenTable&amp;#039;s &amp;#034;State of the Industry&amp;#034; page** by Aaron Enright&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1911043&#xD;
&#xD;
&amp;gt; **City-level Search Tool for Coronavirus (COVID-19) Confirmed Cases** by David Lomiashvili&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1913247&#xD;
&#xD;
&amp;gt; **Web Scraper: New York Times Coronavirus Data** by Robert Rimmer &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1894426&#xD;
&#xD;
&amp;gt; **TraCOV: Personalized COVID-19 Risk Analysis Tool** by Jessica Shi&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1977700&#xD;
&#xD;
&amp;gt; **Mobility changes data: transforming to Wolfram Language dataset** by Mads Bahrami&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2160386&#xD;
&#xD;
&#xD;
### ________________________________&#xD;
### MASKS&#xD;
&#xD;
&amp;gt; **Effect of mandatory mask usage in COVID cases** by Diego Zviovich &#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/1919060&#xD;
&#xD;
&amp;gt; **Face mask detection: classifying image data** by Siria Sadeddin&#xD;
&#xD;
&amp;gt; https://community.wolfram.com/groups/-/m/t/2139499&#xD;
&#xD;
&#xD;
## ________________________________________ &#xD;
## [Livestream Archives (*link*)][18]&#xD;
&#xD;
- Stephen &amp;amp; Christopher Wolfram + guests [Exploring Pandemic Data][19]&#xD;
- Stephen &amp;amp; Christopher Wolfram + guests [Exploring and Explaining Epidemic Modeling][20]&#xD;
- Robert Nachbar - [Epidemiological Models for Influenza and COVID-19][21]&#xD;
- Brian Wood - [COVID-19 Dashboard Visualizations][22]&#xD;
- John Cassel - [Behind the Genetic Sequences for Novel Coronavirus SARS-CoV-2][23]&#xD;
- Keiko Hirayama - [Patient Data Exploration for the Novel Coronavirus COVID-19][24]&#xD;
- Keiko Hirayama - [Pandemic Data Exploration for the Novel Coronavirus COVID-19][25]&#xD;
- Diego Zviovich - [Geo-spatial-temporal COVID-19 Simulations and Visualizations Over USA][26]&#xD;
- Anton Antonov - [COVID19 Epidemic Modeling: Compartmental Models][27]&#xD;
- Anton Antonov - [Scaling of Epidemiology Models with Multi-site Compartments][28]&#xD;
- Anton Antonov - [Simple Economic Extension of Compartmental Epidemiological Models][29]&#xD;
-  Juan Klopper - [Coronavirus medical data analysis][30]&#xD;
-  Juan Klopper - [Coronavrirus epidemiological data analysis][31]&#xD;
- Rory Foulger - [Coronavirus Data Exploration - Wolfram Livecoding with Students][32]&#xD;
&#xD;
## ________________________________________ &#xD;
## Other useful resources&#xD;
&#xD;
- Arnoud Buzing [GitHub][33] repository and [Notebook Gallery][34] for coronavirus &#xD;
- [Modeling a Pandemic like Ebola with the Wolfram Language](https://blog.wolfram.com/2014/11/04/modeling-a-pandemic-like-ebola-with-the-wolfram-language)&#xD;
- [Epidemics at Wolfram Demonstrations](https://demonstrations.wolfram.com/search.html?query=epidemic)&#xD;
- [IGSIRProcess - IGraph Epidemic models][35]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1China_c.png&amp;amp;userId=1624544&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1.5US_c.png&amp;amp;userId=1624544&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=2World_c.png&amp;amp;userId=1624544&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=3Genetic_c.png&amp;amp;userId=1624544&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=4Patient_c.png&amp;amp;userId=1624544&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=5Resources_c.png&amp;amp;userId=1624544&#xD;
  [7]: https://www.wolframcloud.com/obj/examples/COVID19Preview.png&#xD;
  [8]: https://www.wolframcloud.com/obj/s.wolfram/Published/COVID-19-Livestream-March-24.nb&#xD;
  [9]: https://community.wolfram.com/groups/-/m/t/1907703&#xD;
  [10]: https://youtu.be/Vs5APySGYnk&#xD;
  [11]: https://youtu.be/kC6LHAv_lx0&#xD;
  [12]: https://community.wolfram.com/groups/-/m/t/1908923&#xD;
  [13]: https://datarepository.wolframcloud.com/search/?i=COVID-19&#xD;
  [14]: https://datarepository.wolframcloud.com/search/?i=COVID-19&#xD;
  [15]: https://reference.wolfram.com/language/workflow/SubmitToTheWolframDataRepository.html&#xD;
  [16]: https://community.wolfram.com/groups/-/m/t/2238214&#xD;
  [17]: http://wolfr.am/StaffPicks&#xD;
  [18]: https://www.youtube.com/playlist?list=PLxn-kpJHbPx3_hUbroRYC_7NxcOwZ1SWa&#xD;
  [19]: https://youtu.be/Vs5APySGYnk&#xD;
  [20]: https://youtu.be/kC6LHAv_lx0&#xD;
  [21]: https://youtu.be/pcFB6_yrxGE&#xD;
  [22]: https://youtu.be/vUq8qx7kTYA&#xD;
  [23]: https://youtu.be/HCJgv3N_kDo&#xD;
  [24]: https://youtu.be/MlI_8o4A3BA&#xD;
  [25]: https://youtu.be/P86ZY-znE64&#xD;
  [26]: https://youtu.be/Kjk-sYlg-U0&#xD;
  [27]: https://youtu.be/LRs9rYCXIzs&#xD;
  [28]: https://youtu.be/b8oCNjRI0gY&#xD;
  [29]: https://youtu.be/C-sjXQiPE7s&#xD;
  [30]: https://youtu.be/gA0TPQZgNY0&#xD;
  [31]: https://youtu.be/I-n3zN4aU6c&#xD;
  [32]: https://youtu.be/4xCfPIiredM&#xD;
  [33]: https://github.com/arnoudbuzing/wolfram-coronavirus&#xD;
  [34]: https://wolfr.am/JZNRriEE&#xD;
  [35]: http://szhorvat.net/mathematica/IGDocumentation/#epidemic-models</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2020-02-04T15:18:14Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1108667">
    <title>[?] Modify OX labels output format?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1108667</link>
    <description>Hello!&#xD;
I want to plot a simple function, but on the OX axis, the output labels are by default 1,2,3, etc.&#xD;
I want to have them in the format **x/2**. &#xD;
Instead of 1,2,3, I want 2/2, 4/2, 6/2. Is this possible? But only on the OX axis.&#xD;
&#xD;
Thank you in advance!</description>
    <dc:creator>Robert Poenaru</dc:creator>
    <dc:date>2017-05-26T09:12:30Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1108617">
    <title>[?] Plot disks of radius r=1-f[x]?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1108617</link>
    <description>Hi i&amp;#039;m trying to plot disks of radius =(1-f[x]), so that it makes a sphere, as we know that the volume of a cylinder having height=2 radius - the volume of the cone having radius r, is always equal to the volume of a sphere having radius r. but i want to show that using disks.</description>
    <dc:creator>Muhammad Afzal</dc:creator>
    <dc:date>2017-05-26T06:59:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1108324">
    <title>[GIF] Back and Forth (Möbius transformations of the circle)</title>
    <link>https://community.wolfram.com/groups/-/m/t/1108324</link>
    <description>![Möbius transformations of the circle][1]&#xD;
&#xD;
**Back and Forth**&#xD;
&#xD;
One fact I&amp;#039;ve known for a while but never really dived into is that Möbius transformations of the circle can be realized by inverse stereographic projecting to the sphere (here I&amp;#039;m thinking of the circle as the equator of the sphere, so inverse stereographic projection is just the identity in this case), rotating the sphere in space (say, around the south pole), and then stereographically projecting from the new &amp;#034;north pole&amp;#034; back to the circle. The animation shows what happens when you do this to 15 equally-spaced points on the circle, where the sphere is being rotated by an angle of $\pi/3$ around the axis $(\cos \psi, \sin \psi, 0)$ anchored at $(0,0,-1)$, and we let $\psi$ vary from 0 to $2\pi$.&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=mobius12.gif&amp;amp;userId=610054&#xD;
  [2]: https://www.wolframcloud.com/obj/545113ac-8325-4e63-82ae-d770422f55f5</description>
    <dc:creator>Clayton Shonkwiler</dc:creator>
    <dc:date>2017-05-25T19:34:31Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1034626">
    <title>[GIF] Elaborating on Arrival&amp;#039;s Alien Language, Part I., II. &amp;amp; III.</title>
    <link>https://community.wolfram.com/groups/-/m/t/1034626</link>
    <description>I recently watched &amp;#034;Arrival&amp;#034;, and thought that some of the dialogue sounded Wolfram-esque. Later, I saw the following blog post:&#xD;
&#xD;
[Quick, How Might the Alien Spacecraft Work?][1] &#xD;
&#xD;
Along with many others, I enjoyed the movie. The underlying artistic concept for the alien language reminded me of decade old memories, a book by Stephen Addiss, [Art of Zen][2]. Asian-influenced symbolism is an interesting place to start building a sci-fi concept, even for western audiences.  &#xD;
&#xD;
I also found Cristopher Wolfram&amp;#039;s broadcast and the associated files: &#xD;
&#xD;
[Youtube Broadcast][3]&#xD;
&#xD;
[Github Files ( with image files ) ][4]&#xD;
&#xD;
Thanks for sharing! More science fiction, yes! &#xD;
&#xD;
I think the constraint of circular logograms could be loosened. This leads to interesting connections with theory of functions, which I think the Aliens would probably know about. &#xD;
&#xD;
The following code takes an alien logogram as input and outputs a deformation according to do-it-yourself formulation of the Pendulum Elliptic Functions:&#xD;
&#xD;
![Human Animation][5]&#xD;
&#xD;
## $m=2$ Inversion Coefficients ##&#xD;
&#xD;
    MultiFactorial[n_, nDim_] := Times[n, If[n - nDim &amp;gt; 1, MultiFactorial[n - nDim, nDim], 1]]&#xD;
    GeneralT[n_, m_] :=  Table[(-m)^(-j) MultiFactorial[i + m (j - 1) + 1, m]/ MultiFactorial[i + 1, m], {i, 1, n}, {j, 1, i}]&#xD;
    a[n_] := With[{gt = GeneralT[2 n, 2]}, gt[[2 #, Range[#]]] &amp;amp; /@ Range[n] ]&#xD;
&#xD;
## Pendulum Values : $2(1-\cos(x))$ Expansion Coefficients ##&#xD;
&#xD;
    c[n_ /; OddQ[n]] := c[n] = 0;&#xD;
    c[n_ /; EvenQ[n]] := c[n] = 2 (n!) (-2)^(n/2)/(n + 2)!;&#xD;
&#xD;
## Partial Bell Polynomials ##&#xD;
Note: These polynomials are essentially the same as the &amp;#034;**BellY**&amp;#034; ( hilarious naming convention), but recursion optimized. See timing tests below. &#xD;
&#xD;
    B2[0, 0] = 1;&#xD;
    B2[n_ /; n &amp;gt; 0, 0] := 0;&#xD;
    B2[0, k_ /; k &amp;gt; 0] := 0;&#xD;
    B2[n_ /; n &amp;gt; 0, k_ /; k &amp;gt; 0] := B2[n, k] = Total[&#xD;
        Binomial[n - 1, # - 1] c[#] B2[n - #, k - 1] &amp;amp; /@ &#xD;
         Range[1, n - k + 1] ];&#xD;
&#xD;
## Function Construction ##&#xD;
&#xD;
    BasisT[n_] :=  Table[B2[i, j]/(i!) Q^(i + 2 j), {i, 2, 2 n, 2}, {j, 1, i/2}]&#xD;
    PhaseSpaceExpansion[n_] :=   Times[Sqrt[2 \[Alpha]], 1 + Dot[MapThread[Dot, {BasisT[n], a[n]}], (2 \[Alpha])^Range[n]]];&#xD;
    AbsoluteTiming[CES50 = PhaseSpaceExpansion[50];] (* faster than 2(s) *)&#xD;
    Fast50 = Compile[{{\[Alpha], _Real}, {Q, _Real}}, Evaluate@CES50];&#xD;
&#xD;
## Image Processing ##&#xD;
note: This method is a hack from &amp;#034;.jpg&amp;#034; to sort-of vector drawing. I haven&amp;#039;t tested V11.1 vectorization functionality, but it seems like this could be a means to process all jpg&amp;#039;s and output a file of vector polygons. Anyone ?&#xD;
&#xD;
    LogogramData = Import[&amp;#034;Human1.jpg&amp;#034;];&#xD;
    Logogram01 = ImageData[ColorNegate@Binarize[LogogramData, .9]];&#xD;
    ArrayPlot@Logogram01;&#xD;
    &#xD;
    Positions1 = &#xD;
      Position[Logogram01[[5 Range[3300/5], 5 Range[3300/5]]], 1];&#xD;
    Graphics[{Disk[#, 1.5] &amp;amp; /@ Positions1, Red, &#xD;
       Disk[{3300/5/2, 3300/5/2}, 10]}];&#xD;
    onePosCentered = &#xD;
      N[With[{cent = {3300/5/2, 3300/5/2} }, # - cent &amp;amp; /@ Positions1]];&#xD;
    radii = Norm /@ onePosCentered;&#xD;
    maxR = Max@radii;&#xD;
    normRadii = radii/maxR;&#xD;
    angles = ArcTan[#[[2]], #[[1]]] &amp;amp; /@ onePosCentered;&#xD;
    Qs = Cos /@ angles;&#xD;
## Constructing and Printing Image Frames ##&#xD;
&#xD;
    AlienWavefunction[R_, pixel_, normRad_, Qs_, angles_] := Module[{&#xD;
       deformedRadii = MapThread[Fast50, {R normRad, Qs}],&#xD;
       deformedVectors = Map[N[{Cos[#], Sin[#]}] &amp;amp;, angles],&#xD;
       deformedCoords&#xD;
       },&#xD;
      deformedCoords = &#xD;
       MapThread[Times, {deformedRadii, deformedVectors}];&#xD;
      Show[ PolarPlot[ Evaluate[&#xD;
         CES50 /. {Q -&amp;gt; Cos[\[Phi]], \[Alpha] -&amp;gt; #/10} &amp;amp; /@ &#xD;
          Range[9]], {\[Phi], 0, 2 Pi}, Axes -&amp;gt; False, &#xD;
        PlotStyle -&amp;gt; Gray],&#xD;
       Graphics[Disk[#, pixel] &amp;amp; /@ deformedCoords], ImageSize -&amp;gt; 500]]&#xD;
    &#xD;
    AbsoluteTiming[  OneFrame = &#xD;
       AlienWavefunction[1, (1 + 1)* 1.5/maxR, normRadii, Qs, angles]&#xD;
     ](* about 2.5 (s)*)&#xD;
&#xD;
![Alien Pendulum][6]&#xD;
&#xD;
## Validation and Timing ##&#xD;
In this code, we&amp;#039;re using the magic algorithm to get up to about $100$ orders of magnitude in the half energy, $50$ in the energy. I did prove $m=1$ is equivalent to other published forms, but haven&amp;#039;t found anything in the literature about $m=2$, and think that the proving will take more time, effort, and insight (?). For applications, we just race ahead without worrying too much, but do check with standard, known expansions: &#xD;
&#xD;
    EK50 = Normal@ Series[D[ Expand[CES50^2/2] /.  Q^n_ :&amp;gt; (1/2)^n Binomial[n, n/2], \[Alpha]], {\[Alpha], 0, 50}];&#xD;
    SameQ[Normal@  Series[(2/Pi) EllipticK[\[Alpha]], {\[Alpha], 0, 50}], EK50]&#xD;
    Plot[{(2/Pi) EllipticK[\[Alpha]], EK50}, {\[Alpha], .9, 1}, ImageSize -&amp;gt; 500]&#xD;
    Out[]:= True&#xD;
&#xD;
![Approximation Validity][7]&#xD;
&#xD;
This plot gives an idea of approximation validity via the time integral over $2\pi$ radians in phase space. Essentially, even the time converges up to, say,  $\alpha = 0.92$. Most of the divergence is tied up in the critical point, which is difficult to notice in the phase space drawings above. &#xD;
&#xD;
Also compare the time of function evaluation:&#xD;
&#xD;
    tDIY = Mean[ AbsoluteTiming[Fast50[.9, RandomReal[{0, 1}]] ][[1]] &amp;amp; /@ Range[10000]];&#xD;
    tMma = Mean[AbsoluteTiming[JacobiSN[.9, RandomReal[{0, 1}]] ][[1]] &amp;amp; /@ Range[10000]];&#xD;
    tMma/tDIY&#xD;
&#xD;
In the region of sufficient convergence, Mathematica function **JacobiSN** is almost 20 times slower. The CES radius also requires a function call to **JacobiCN**, so an output-equivalent **AlienWavefunction** algorithm using built-in Mathematica functions would probably take at least 20 times as long to produce. When computing hundreds of images this is a noticeable slow down, something to avoid ! !  &#xD;
&#xD;
Also compare time to evaluate the functional basis via the Bell Polynomials:&#xD;
&#xD;
     BasisT2[n_] := Table[BellY[i, j, c /@ Range[2 n]]/(i!) Q^(i + 2 j), {i, 2, 2 n,  2}, {j, 1, i/2}];&#xD;
    SameQ[BasisT2[20], BasisT[20]]&#xD;
    t1 = AbsoluteTiming[BasisT[#];][[1]] &amp;amp; /@ Range[100];&#xD;
    t2 = AbsoluteTiming[BasisT2[#];][[1]] &amp;amp; /@ Range[25];&#xD;
    ListLinePlot[{t1, t2}, ImageSize -&amp;gt; 500]&#xD;
![Series Inverse][8]&#xD;
&#xD;
The graph shows quite clearly that careful evaluation via the recursion relations changes the complexity of the inversion algorithm to polynomial time, $(n^2)$, in one special example where the forward series expansions coefficients have known, numeric values. &#xD;
&#xD;
&#xD;
## Conclusion ##&#xD;
&#xD;
We show proof-of-concept that alien logograms admit deformations that preserve the cycle topology. Furthermore we provide an example calculation where the &amp;#034;human&amp;#034; logogram couples to a surface. Deformation corresponds to scale transformation of the logogram along the surface. Each deformation associates with an energy. &#xD;
&#xD;
Invoking the pendulum analogy gives the energy a physical meaning in terms of gravity, but we are not limited to classical examples alone. The idea extends to arbitrary surfaces in two, three or four dimensions, as long as the surfaces have local extrema. Around the extrema, there will exist cycle contours, which we can inscript with the Alien logograms. This procedure leads readily to large form compositions, especially if the surface has many extrema. Beyond Fourier methods, we might also apply spherical harmonics, and hyperspherical harmonics to get around the limitation of planarity. &#xD;
&#xD;
The missing proof... Maybe later. LOL! ~ ~ ~ ~ Brad   &#xD;
&#xD;
And in the Fanfiction Voice: &#xD;
&#xD;
Physicist : &amp;#034;It should be no surprise that heptapod speech mechanism involves an arbitrary deformation of the spacetime manifold.&amp;#034;&#xD;
&#xD;
Linguist :  &amp;#034;Space-traveling aliens, yes, of course they know math and physics, but Buddhist symbology, where&amp;#039;d they learn that?&amp;#034;&#xD;
&#xD;
&#xD;
  [1]: http://blog.stephenwolfram.com/2016/11/quick-how-might-the-alien-spacecraft-work/&#xD;
  [2]: https://books.google.com/books/about/Art_of_Zen.html?id=4jGEQgAACAAJ&#xD;
  [3]: https://www.youtube.com/watch?v=8N6HT8hzUCA&amp;amp;t=4992s&#xD;
  [4]: https://github.com/WolframResearch/Arrival-Movie-Live-Coding&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Deformation.gif&amp;amp;userId=234448&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=AlienPendulum.png&amp;amp;userId=234448&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=EllipticK.png&amp;amp;userId=234448&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=BellPolynomial.png&amp;amp;userId=234448</description>
    <dc:creator>Brad Klee</dc:creator>
    <dc:date>2017-03-18T20:23:59Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/403693">
    <title>How to use NMinimize on a mesh?</title>
    <link>https://community.wolfram.com/groups/-/m/t/403693</link>
    <description>Hey there, community!&#xD;
&#xD;
I have recently been working with the new FEM-package included in Mathematica 10. I have a 2D mesh and two interpolating functions (call them uif and vif) obtained by solving a differential equation in the mesh using NDSolve. The mesh is similar to the one shown below, only denser. My problem now is that, given values u0 and v0, I need to find the point where uif[x,y] = u0 and vif[x,y] = v0.&#xD;
&#xD;
![Example of the mesh][1]&#xD;
&#xD;
Now, since uif and vif are defined on the mesh, I would naturally want to do something like this:&#xD;
&#xD;
    NMinimize[{Norm[{u0 - uif[x, y], v0 - vif[x, y]}], {x, y} \[Element] mesh}, {x, y}]];&#xD;
&#xD;
Here &amp;#034;{x,y} \[Element] mesh&amp;#034; indicates that the point (x,y) lies inside the mesh. Unfortunately, the above code results in the following error:&#xD;
&#xD;
    NMinimize::elemc: &amp;#034;Unable to resolve the domain or region membership condition {x,y} \[Element] &amp;lt;&amp;lt;1&amp;gt;&amp;gt;.&#xD;
&#xD;
**So, is there a way to convert the mesh into a region that I can pass on to NMinimize?** Previously I tried defining the region explicitly using unions and differences of disks and rectangles, or implicitly using equations for $x$ and $y$, but due to a number of bugs (or restrictions) with the regions and with the FEM package, this is unfortunately not an option.&#xD;
&#xD;
The mesh is simply-connected and I do have direct access to the boundary mesh if necessary.&#xD;
&#xD;
-Jonatan&#xD;
&#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=Samplemesh.jpeg&amp;amp;userId=338953</description>
    <dc:creator>Jonatan Lehtonen</dc:creator>
    <dc:date>2014-12-08T16:43:02Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/108265">
    <title>How to change Y axis range</title>
    <link>https://community.wolfram.com/groups/-/m/t/108265</link>
    <description>How can I change the Y axis range from 10^-3 to 10^0 with step size: 10^-1 to plot the following function[mcode]f = Product[ 1 - (Gamma[m, (m (((10 Log10[3]) *0.5)/S )^(1/n))/t] Gamma[ m, (m ((10 Log10[3]*0.75)/S)^(1/n))/t])/Gamma[m]^2, {i, 1, M}] /. Subscript -&amp;gt; Part;[/mcode][mcode]p = Plot[f, {S, 0, 20}, PlotRange -&amp;gt; {0,1}][/mcode]Assuming that: m =1.64, n=2, M = 3 , t=1.57&#xD;
&#xD;
I used PlotRange but it does not work..&#xD;
&#xD;
Thanks for your support</description>
    <dc:creator>John G</dc:creator>
    <dc:date>2013-08-28T20:06:42Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2593151">
    <title>⭐ [R&amp;amp;DL] Wolfram R&amp;amp;D Developers on LIVE Stream</title>
    <link>https://community.wolfram.com/groups/-/m/t/2593151</link>
    <description>**Introducing our brand new YouTube channel, [Wolfram R&amp;amp;D][1]! Our channel features livestreams, behind-the-scenes creator presentations, insider videos, and more.**&#xD;
&#xD;
----------&#xD;
&#xD;
Join us for the unique Wolfram R&amp;amp;D livestreams on [Twitch][2] and [YouTube][3] led by our developers! &#xD;
&#xD;
You will see **LIVE** stream indicators on these channels on the dates listed below. The live streams provide tutorials and behind the scenes look at Mathematica and the Wolfram Language directly from developers.&#xD;
&#xD;
Join our livestreams every Wednesday at 11 AM CST and interact with developers who work on data science, machine learning, image processing, visualization, geometry, and other areas.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
⭕ **UPCOMING** EVENTS&#xD;
&#xD;
&#xD;
- Jan 29 -- Reinforcement Learning Applied to Feedback Control with [Suba Thomas][61]&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
✅ **PAST** EVENTS  &#xD;
&#xD;
&#xD;
- April 24 -- [FeynCalc][60]&#xD;
- April 3 -- [Explore the Total Solar Eclipse of April 2024][59]&#xD;
- Mar 22 -- [20 Years of xAct Tensor Computer Algebra][58] &#xD;
- Feb 28 -- [Zero Knowledge Authentication][57]&#xD;
- Jan 17 -- [Nutrients by the Numbers][56]&#xD;
- Dec 13 -- [Understanding Graphics][55]&#xD;
- Oct 18 -- [Overview of Number Theory][54]&#xD;
- Sep 27 -- [QMRITools: Processing Quantitative MRI Data][52]&#xD;
- Sep 13 -- [Make High Quality Graph Visualization][51]&#xD;
- Sep 6 -- [Insider&amp;#039;s View of Graphs &amp;amp; Networks][53]&#xD;
- Aug 30 -- [Labeling Everywhere][49]&#xD;
- Aug 22 -- [Equation Generator for Equation-of-Motion Coupled Cluster Assisted by CAS][48]&#xD;
- Aug 16 -- [Foreign Function Interface][4]&#xD;
- July 26 -- [Modeling Fluid Circuits][6]&#xD;
- July 19 -- [Geocomputation][5]&#xD;
- July 5 -- [Protein Visualization][7]&#xD;
- Jun 14 -- [Chat Notebooks bring the power of Notebooks to LLMs][8]&#xD;
- May 31-- [Probability and Statistics: Random Sampling][9]&#xD;
- May 24 -- [Problem Solving][10]&#xD;
- May 17 -- [The state of Optimization][11]&#xD;
- May 10 -- [Building a video game with Wolfram notebooks][12]&#xD;
- April 26 -- [Control Systems: An Overview][13]&#xD;
- April 19 -- [MaXrd: A crystallography package developed for research support][14]&#xD;
- April 5th -- [Relational database in the Wolfram Language][15]&#xD;
- Mar 29th -- [Build your first game in the Wolfram Language with Unity game engine][16]&#xD;
- Mar 22nd -- [Everything to know about Mellin-Barnes Integrals - Part II][17]&#xD;
- Mar 15th -- [Building your own Shakespearean GPT - a ChatGPT like GPT model][18]&#xD;
- Mar 8th -- [Understand Time, Date and Calendars][19]&#xD;
- Mar 1st -- [Introducing Astro Computation][20]&#xD;
- Feb 22nd -- [Latest features in System Modeler][21]&#xD;
- Feb 15th -- [Everything to know about Mellin-Barnes Integrals][22]&#xD;
- Feb 8th -- [Dive into Video Processing][23]&#xD;
- Feb 1st -- [PDE Modeling][24]&#xD;
- Jan. 25th -- [Ask Integration Questions to Oleg Marichev][25]&#xD;
- Jan. 18th -- [My Developer Tools][26]&#xD;
- Jan. 11th -- [Principles of Dynamic Interfaces][27]&#xD;
- Dec. 14th -- [Wolfram Resource System: Repositories &amp;amp; Archives][28]&#xD;
- Dec. 7th -- [Inner Workings of ImageStitch: Image Registration, Projection and Blending][29]&#xD;
- Nov. 30th -- [Q&amp;amp;A for Calculus and Algebra][30]&#xD;
- Nov. 23rd -- [xAct: Efficient Tensor Computer Algebra][31]&#xD;
- Nov. 16th -- [Latest in Machine Learning][32]&#xD;
- Nov. 9th -- [Computational Geology][33]&#xD;
- Nov. 2nd -- [Behind the Scenes at the Wolfram Technology Conference 2022][34]&#xD;
- Oct 26th -- [Group Theory Package (GTPack) and Symmetry Principles in Condensed Matter][35]&#xD;
- Oct 12th -- [Tree Representation for XML, JSON and Symbolic Expressions][36]&#xD;
- Oct. 5th -- [A Computational Exploration of Alcoholic Beverages][37]&#xD;
- Sept. 28th -- [Q&amp;amp;A with Visualization &amp;amp; Graphics Developers][38]&#xD;
- Sept. 14th -- [Paclet Development][39]&#xD;
- Sept. 7th -- [Overview of Chemistry][40]&#xD;
- Aug. 24th -- [Dive into Visualization][41]  &#xD;
- Aug. 17th -- [Latest in Graphics &amp;amp; Shaders][42]   &#xD;
- Aug. 10th -- [What&amp;#039;s new in Calculus &amp;amp; Algebra][43]   &#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&amp;gt; **What are your interests? Leave a comment here on this post to share your favorite topic suggestions for our livestreams.**  &#xD;
**Follow us on our live broadcasting channels [Twitch][44] and [YouTube][45] and for the up-to-date announcements on our social media: [Facebook][46] and [Twitter][47].**&#xD;
&#xD;
&#xD;
  [1]: https://wolfr.am/1eatWLcDA&#xD;
  [2]: https://www.twitch.tv/wolfram&#xD;
  [3]: https://wolfr.am/1eatWLcDA&#xD;
  [4]: https://www.youtube.com/watch?v=C82NHpy7D6k&#xD;
  [5]: https://community.wolfram.com/groups/-/m/t/2985580&#xD;
  [6]: https://community.wolfram.com/groups/-/m/t/2982197&#xD;
  [7]: https://community.wolfram.com/groups/-/m/t/2982114&#xD;
  [8]: https://youtu.be/ZqawtrWwE0c&#xD;
  [9]: https://community.wolfram.com/groups/-/m/t/2946101&#xD;
  [10]: https://community.wolfram.com/groups/-/m/t/2925156&#xD;
  [11]: https://community.wolfram.com/groups/-/m/t/2921756&#xD;
  [12]: https://community.wolfram.com/groups/-/m/t/2918746&#xD;
  [13]: https://community.wolfram.com/groups/-/m/t/2917597&#xD;
  [14]: https://community.wolfram.com/groups/-/m/t/2911327&#xD;
  [15]: https://community.wolfram.com/groups/-/m/t/2907390&#xD;
  [16]: https://community.wolfram.com/groups/-/m/t/2921593&#xD;
  [17]: https://community.wolfram.com/groups/-/m/t/2861119&#xD;
  [18]: https://community.wolfram.com/groups/-/m/t/2847286&#xD;
  [19]: https://community.wolfram.com/groups/-/m/t/2851575&#xD;
  [20]: https://community.wolfram.com/groups/-/m/t/2852934&#xD;
  [21]: https://community.wolfram.com/groups/-/m/t/2842136&#xD;
  [22]: https://community.wolfram.com/groups/-/m/t/2838335&#xD;
  [23]: https://community.wolfram.com/groups/-/m/t/2827166&#xD;
  [24]: https://community.wolfram.com/groups/-/m/t/2823264&#xD;
  [25]: https://community.wolfram.com/groups/-/m/t/2821053&#xD;
  [26]: https://youtu.be/istKGqpDUsw&#xD;
  [27]: https://community.wolfram.com/groups/-/m/t/2777853&#xD;
  [28]: https://youtu.be/roCkXVkDuLA&#xD;
  [29]: https://youtu.be/pYHAz-NatXI&#xD;
  [30]: https://youtu.be/r7Hjdr_D7c4&#xD;
  [31]: https://community.wolfram.com/groups/-/m/t/2713818&#xD;
  [32]: https://community.wolfram.com/groups/-/m/t/2705779&#xD;
  [33]: https://community.wolfram.com/groups/-/m/t/2701172&#xD;
  [34]: https://youtu.be/UrM-OBu3H9o&#xD;
  [35]: https://community.wolfram.com/groups/-/m/t/2678940&#xD;
  [36]: https://community.wolfram.com/groups/-/m/t/2649407&#xD;
  [37]: https://community.wolfram.com/groups/-/m/t/2635049&#xD;
  [38]: https://community.wolfram.com/groups/-/m/t/2618033&#xD;
  [39]: https://community.wolfram.com/groups/-/m/t/2616863&#xD;
  [40]: https://community.wolfram.com/groups/-/m/t/2613617&#xD;
  [41]: https://community.wolfram.com/groups/-/m/t/2605432&#xD;
  [42]: https://community.wolfram.com/groups/-/m/t/2600997&#xD;
  [43]: https://community.wolfram.com/groups/-/m/t/2596451&#xD;
  [44]: https://www.twitch.tv/wolfram&#xD;
  [45]: https://wolfr.am/1eatWLcDA&#xD;
  [46]: https://www.facebook.com/wolframresearch&#xD;
  [47]: https://twitter.com/WolframResearch&#xD;
  [48]: https://www.youtube.com/live/ElP55ZILxPw?si=nsAPOQ3u-RbvuGKX&#xD;
  [49]: https://community.wolfram.com/groups/-/m/t/3007543&#xD;
  [50]: https://community.wolfram.com/web/charlesp&#xD;
  [51]: https://community.wolfram.com/groups/-/m/t/3019288&#xD;
  [52]: https://www.youtube.com/live/KM1yWHRrF2k?si=g2R7rHB2IinVRpo6&#xD;
  [53]: https://community.wolfram.com/groups/-/m/t/3009184&#xD;
  [54]: https://community.wolfram.com/groups/-/m/t/3064700&#xD;
  [55]: https://community.wolfram.com/groups/-/m/t/3084291&#xD;
  [56]: https://community.wolfram.com/groups/-/m/t/3104670&#xD;
  [57]: https://community.wolfram.com/groups/-/m/t/3164204&#xD;
  [58]: https://youtube.com/playlist?list=PLdIcYTEZ4S8TSEk7YmJMvyECtF-KA1SQ2&amp;amp;si=paXZHs0ZzGdB7y1y&#xD;
  [59]: https://youtube.com/playlist?list=PLdIcYTEZ4S8RyjEB7JSAsGerbYHl5xXeJ&amp;amp;si=xkNtkIDvKHFWHVmD&#xD;
  [60]: https://youtu.be/KUWK19Gx2LE?si=qbKISbL8FtvweSWo&#xD;
  [61]: https://community.wolfram.com/web/subat</description>
    <dc:creator>Charles Pooh</dc:creator>
    <dc:date>2022-08-05T21:37:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/122095">
    <title>Dancing with friends and enemies: boids&amp;#039; swarm intelligence</title>
    <link>https://community.wolfram.com/groups/-/m/t/122095</link>
    <description>The latest way I have found to use my expensive math software for frivolous entertainment is this. Here&amp;#039;s is a way to describe it. 
[list]
[*]1000 dancers assume random positions on the dance-floor. 
[*]Each randomly chooses one &amp;#034;friend&amp;#034; and one &amp;#034;enemy&amp;#034;. 
[*]At each step every dancer 
[list]
[*]moves 0.5% closer to the centre of the floor
[*]then takes a large step towards their friend 
[*]and a small step away from their enemy. 
[/list]
[*]At random intervals one dancer re-chooses their friend and enemy
[/list]
Randomness is deliberately injected. Here is the dance...
[mcode]n = 1000; 
r := RandomInteger[{1, n}]; 
f := (#/(.01 + Sqrt[#.#])) &amp;amp; /@ (x[[#]] - x) &amp;amp;; 
s := With[{r1 = r}, p[[r1]] = r; q[[r1]] = r]; 
x = RandomReal[{-1, 1}, {n, 2}]; 
{p, q} = RandomInteger[{1, n}, {2, n}]; 
Graphics[{PointSize[0.007], Dynamic[If[r &amp;lt; 100, s]; 
Point[x = 0.995 x + 0.02 f[p] - 0.01 f[q]]]}, PlotRange -&amp;gt; 2][/mcode]
[img]/c/portal/getImageAttachment?filename=OPTfnlfrnds.gif&amp;amp;userId=11733[/img]

Thanks to Vitaliy for posting this on my behalf, complete with animations :-)

Background: I had read somewhere that  macro-scale behaviour of animal swarms (think of flocks of starlings or shoals of herring) is explained by each individual following very simple rules local to their vicinity, essentially 1) try to keep up and 2) try not to collide. I started trying to play with this idea in Mathematica, but it was rather slow to identify the nearest neighbours of each particle. So I wondered what would happen if each particle acted according to the locations of two other particles, regardless of their proximity. The rule was simply to move away from one and towards the other.

The contraction (x = 0.995 x) was added to prevent the particle cloud from dispersing towards infinity or drifting away from the origin. I tweaked the &amp;#034;towards&amp;#034; and &amp;#034;away&amp;#034; step sizes to strike a balance between the tendency to clump together and to spread apart (if you make the step sizes equal you get something more like a swarm of flies). With each particle&amp;#039;s attractor and repeller fixed, the system finds a sort of dynamic equilibrium, so to keep things changing I added a rule to periodically change the attractor and repeller for one of the particles. The final adjustment was to make the &amp;#034;force&amp;#034; drop towards zero for particles at very close range. This helps to stop the formation of very tight clumps, and also prevents a division-by-zero error when a particle chooses itself as its attractor or repeller.

The description of the system as a dance was an attempt to explain the swirling pattern on the screen without using mathematical language. I&amp;#039;d love to see what other &amp;#034;dances&amp;#034; can be created with other simple rules.</description>
    <dc:creator>Simon Woods</dc:creator>
    <dc:date>2013-09-11T18:31:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1085633">
    <title>How-To-Guide: External GPU on OSX - how to use CUDA on your Mac</title>
    <link>https://community.wolfram.com/groups/-/m/t/1085633</link>
    <description>The neural network and machine learning framework has become one of the key features of the latest releases of the Wolfram Language. Training neural networks can be very time consuming on a standard CPU. Luckily the Wolfram Language offers an incredible easy way to use a GPU to train networks - and do lots of other cool stuff. The problem with this was/is that most current Macs do not have an NVIDIA graphics card, which is necessary to access this framework within the Wolfram Language. Therefore, Wolfram Inc. had decided to drop support for GPUs on Macs. There is however a way to use GPUs on Macs. For example you can use an [external GPU like the one offered by Bizon][1]. &#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
Apart from the BizonBox there a couple of cables and a power supply. You can buy/configure different versions of the BizonBox: there is a range of different graphics cards available and you can buy a the BizonBox 2s which basically connects via Thunderbolt and the BizonBox 3 which connects to USB-C. &#xD;
&#xD;
Luckily, Wolfram have decided to reintroduce support for GPUs in Mathematica 11.1.1 - see [the discussion here][3]. &#xD;
&#xD;
 I have a variety of these BizonBoxes (both 2s and 3) and a range of Macs. I thought it would be a good idea to post a how-to. The essence of what I will be describing in this post should work for most Macs. I ran Sierra on all of them. Here is the recipe to get the thing to work:&#xD;
&#xD;
Installation of the BizonBox, the required drivers, and compilers&#xD;
-----------------------------------------------------------------&#xD;
&#xD;
0. I will assume that you have Sierra installed and that Xcode is running. One of the really important steps if you want to use compilers is to ***downgrade*** the command line tools to version 7.3 You will  have to log into your Apple Developer account and download the Command Line Tools version 7.3. Install the tools and run the  terminal command (not in Mathematica!): &#xD;
&#xD;
        sudo xcode-select  --switch /Library/Developer/CommandLineTools&#xD;
&#xD;
1. Reboot your Mac into safe mode, i.e. hold CMD+R while rebooting. &#xD;
&#xD;
2. Open a terminal (under item Utilities at the top of the screen).&#xD;
&#xD;
3. Enter &#xD;
&#xD;
        csrutil disable &#xD;
&#xD;
4. Shut the computer down.&#xD;
&#xD;
5. Connect your BizonBox to the mains and to either the thunderbolt or USB-C port of your Mac.&#xD;
&#xD;
6. Restart your Mac. &#xD;
&#xD;
7. Click on the Apple symbol in the top left. Then &amp;#034;About this Mac&amp;#034; and &amp;#034;System Report&amp;#034;. In the Thunderbolt section you should see something like this:&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
8. In the documentation of the BizonBox you will find a link to a program called bizonboxmac.zip. Download that file and unzip it.&#xD;
&#xD;
9. Open the folder and click on &amp;#034;bizonbox.prefPane&amp;#034; to install. (If prompted to, do update!)&#xD;
&#xD;
10. You should see this window:&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
11. Click on Activate. Type in password if required to do so. It should give something like this:&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
Then restart.&#xD;
&#xD;
12.  Install the CUDA Toolkit: [https://developer.nvidia.com/cuda-downloads][8]. You&amp;#039;ll have to click through some questions for the download. &#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
what you download should be something like cuda_8.0.61_mac.dmg and it should be more or less 1.44 GB worth. &#xD;
&#xD;
13.  Install the toolkit with all its elements.&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
14. Restart your computer.&#xD;
&#xD;
First tests&#xD;
-----------&#xD;
&#xD;
Now you should be good to go. Open Mathematica 11.1.1. Execute &#xD;
&#xD;
    Needs[&amp;#034;CUDALink`&amp;#034;]&#xD;
    Needs[&amp;#034;CCompilerDriver`&amp;#034;]&#xD;
    CUDAResourcesInstall[]&#xD;
&#xD;
Then try:&#xD;
&#xD;
    CUDAResourcesInformation[]&#xD;
&#xD;
which should look somewhat like this:&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
 Then you should check &#xD;
&#xD;
    SystemInformation[]&#xD;
&#xD;
Head to Links and then CUDA.This should look similar to this:&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
So far so good. Next is the really crucial thing:&#xD;
&#xD;
    CUDAQ[]&#xD;
&#xD;
should give TRUE. If that&amp;#039;s what you see you are good to go. Be more daring and try&#xD;
&#xD;
    CUDAImageConvolve[ExampleData[{&amp;#034;TestImage&amp;#034;,&amp;#034;Lena&amp;#034;}], N[BoxMatrix[1]/9]] // AbsoluteTiming&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
You might notice that the non-GPU version of this command runs faster:&#xD;
&#xD;
    ImageConvolve[ExampleData[{&amp;#034;TestImage&amp;#034;,&amp;#034;Lena&amp;#034;}], N[BoxMatrix[1]/9]] // AbsoluteTiming&#xD;
&#xD;
runs in something like 0.0824 seconds, but that&amp;#039;s ok. &#xD;
&#xD;
Benchmarking (training neural networks)&#xD;
---------------------------------------&#xD;
&#xD;
Let&amp;#039;s do some Benchmarking. Download some example data:&#xD;
&#xD;
    obj = ResourceObject[&amp;#034;CIFAR-10&amp;#034;]; &#xD;
    trainingData = ResourceData[obj, &amp;#034;TrainingData&amp;#034;]; &#xD;
    RandomSample[trainingData, 5]&#xD;
&#xD;
You can check whether it worked:&#xD;
&#xD;
    RandomSample[trainingData, 5]&#xD;
&#xD;
should give something like this:&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
These are the classes of the 50000 images:&#xD;
&#xD;
    classes = Union@Values[trainingData] &#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
Let&amp;#039;s build a network &#xD;
&#xD;
    module = NetChain[{ConvolutionLayer[100, {3, 3}], &#xD;
       BatchNormalizationLayer[], ElementwiseLayer[Ramp], &#xD;
       PoolingLayer[{3, 3}, &amp;#034;PaddingSize&amp;#034; -&amp;gt; 1]}]&#xD;
    &#xD;
    net = NetChain[{module, module, module, module, FlattenLayer[], 500, &#xD;
       Ramp, 10, SoftmaxLayer[]}, &#xD;
      &amp;#034;Input&amp;#034; -&amp;gt; NetEncoder[{&amp;#034;Image&amp;#034;, {32, 32}}], &#xD;
      &amp;#034;Output&amp;#034; -&amp;gt; NetDecoder[{&amp;#034;Class&amp;#034;, classes}]]&#xD;
&#xD;
When you train the network:&#xD;
&#xD;
    {time, trained} = AbsoluteTiming@NetTrain[net, trainingData, Automatic, &amp;#034;TargetDevice&amp;#034; -&amp;gt; &amp;#034;GPU&amp;#034;];&#xD;
&#xD;
you should see something like this:&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
So the thing started 45 secs ago and it supposed to finish in 2m54s. In fact, it finished after 3m30s. If we run the same on the CPU we get:&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
The estimate kept changing a bit, but it settled down at about 18h20m.That is slower by a factor of about 315, which is quite substantial. &#xD;
&#xD;
Use of compiler&#xD;
---------------&#xD;
&#xD;
Up to now we have not needed the actual compiler. Let&amp;#039;s try this, too. Let&amp;#039;s grow a Mandelbulb:&#xD;
&#xD;
    width = 4*640;&#xD;
    height = 4*480;&#xD;
    iconfig = {width, height, 1, 0, 1, 6};&#xD;
    config = {0.001, 0.0, 0.0, 0.0, 8.0, 15.0, 10.0, 5.0};&#xD;
    camera = {{2.0, 2.0, 2.0}, {0.0, 0.0, 0.0}};&#xD;
    AppendTo[camera, Normalize[camera[[2]] - camera[[1]]]];&#xD;
    AppendTo[camera, &#xD;
      0.75*Normalize[Cross[camera[[3]], {0.0, 1.0, 0.0}]]];&#xD;
    AppendTo[camera, 0.75*Normalize[Cross[camera[[4]], camera[[3]]]]];&#xD;
    config = Join[{config, Flatten[camera]}];&#xD;
    &#xD;
    pixelsMem = CUDAMemoryAllocate[&amp;#034;Float&amp;#034;, {height, width, 3}]&#xD;
    &#xD;
    srcf = FileNameJoin[{$CUDALinkPath, &amp;#034;SupportFiles&amp;#034;, &amp;#034;mandelbulb.cu&amp;#034;}]&#xD;
&#xD;
Now this should work:&#xD;
&#xD;
    mandelbulb = &#xD;
    CUDAFunctionLoad[File[srcf], &amp;#034;MandelbulbGPU&amp;#034;, {{&amp;#034;Float&amp;#034;, _, &amp;#034;Output&amp;#034;}, {&amp;#034;Float&amp;#034;, _, &amp;#034;Input&amp;#034;}, {&amp;#034;Integer32&amp;#034;, _, &amp;#034;Input&amp;#034;}, &amp;#034;Integer32&amp;#034;, &amp;#034;Float&amp;#034;, &amp;#034;Float&amp;#034;}, {16}, &amp;#034;UnmangleCode&amp;#034; -&amp;gt; False, &amp;#034;CompileOptions&amp;#034; -&amp;gt; &amp;#034;--Wno-deprecated-gpu-targets &amp;#034;, &amp;#034;ShellOutputFunction&amp;#034; -&amp;gt; Print]&#xD;
&#xD;
Under certain circumstances you might want to specify the location of the compiler like so:&#xD;
&#xD;
    mandelbulb = &#xD;
     CUDAFunctionLoad[File[srcf], &amp;#034;MandelbulbGPU&amp;#034;, {{&amp;#034;Float&amp;#034;, _, &amp;#034;Output&amp;#034;}, {&amp;#034;Float&amp;#034;, _, &amp;#034;Input&amp;#034;}, {&amp;#034;Integer32&amp;#034;, _, &amp;#034;Input&amp;#034;}, &amp;#034;Integer32&amp;#034;, &amp;#034;Float&amp;#034;, &#xD;
    &amp;#034;Float&amp;#034;}, {16}, &amp;#034;UnmangleCode&amp;#034; -&amp;gt; False, &amp;#034;CompileOptions&amp;#034; -&amp;gt; &amp;#034;--Wno-deprecated-gpu-targets &amp;#034;, &amp;#034;ShellOutputFunction&amp;#034; -&amp;gt; Print, &#xD;
    &amp;#034;CompilerInstallation&amp;#034; -&amp;gt; &amp;#034;/Developer/NVIDIA/CUDA-8.0/bin/&amp;#034;]&#xD;
&#xD;
This should give:&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
Now&#xD;
&#xD;
    mandelbulb[pixelsMem, Flatten[config], iconfig, 0, 0.0, 0.0, {width*height*3}];&#xD;
    pixels = CUDAMemoryGet[pixelsMem];&#xD;
    Image[pixels]&#xD;
&#xD;
gives&#xD;
&#xD;
![enter image description here][19]&#xD;
&#xD;
So it appears that all is working fine.&#xD;
&#xD;
Problems&#xD;
--------&#xD;
&#xD;
I did come up with some problems though. There is quite a number of CUDA functions:&#xD;
&#xD;
    Names[&amp;#034;CUDALink`*&amp;#034;]&#xD;
&#xD;
![enter image description here][20]&#xD;
&#xD;
Many work just fine. &#xD;
&#xD;
    res = RandomReal[1, 5000];&#xD;
    ListLinePlot[res]&#xD;
&#xD;
![enter image description here][21]&#xD;
&#xD;
    ListLinePlot[First@CUDAImageConvolve[{res}, {GaussianMatrix[{{10}, 10}]}]]&#xD;
&#xD;
![enter image description here][22]&#xD;
&#xD;
The thing is that some don&amp;#039;t and I am not sure why (I have a hypothesis though). Here are some functions that do **not** appear to work:&#xD;
&#xD;
CUDAColorNegate&#xD;
CUDAClamp&#xD;
CUDAFold&#xD;
CUDAVolumetricRender&#xD;
CUDAFluidDynamics&#xD;
&#xD;
and some more. I would be very grateful if someone could check these on OSX (and perhaps Windows?). I am not sure if the this is due to some particularity of my systems or something that could be flagged up to Wolfram Inc for checking.  &#xD;
&#xD;
 When I wanted to try that systematically I wanted to use the function&#xD;
&#xD;
    WolframLanguageData&#xD;
&#xD;
to look for the first example in the documentation of the CUDA functions, but it appears that no CUDA function is in the WolframLanguageData. I think tit would be great to have them there, too, and am not sure why they wouldn&amp;#039;t be there. &#xD;
&#xD;
In spite of these problems I hope that this post will help some Mac users to get CUDA going. It is a great framework and simple to use in the Wolfram Language. With the BizonBox and Mathematica 11.1.1 Mac users are no  longer excluded from accessing this feature. &#xD;
&#xD;
Cheers,&#xD;
&#xD;
Marco&#xD;
&#xD;
PS: Note, that there is anecdotal evidence that one can even use the BizonBox under Windows running in a virtual box under OSX. I don&amp;#039;t have Windows, but I&amp;#039;d like to hear if anyone get this running. &#xD;
&#xD;
  [1]: https://bizon-tech.com&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at22.09.10.png&amp;amp;userId=48754&#xD;
  [3]: http://community.wolfram.com/groups/-/m/t/902394&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot1.png&amp;amp;userId=48754&#xD;
  [5]: http://bizon-tech.com/bizonboxmac.zip&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2.png&amp;amp;userId=48754&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot3.png&amp;amp;userId=48754&#xD;
  [8]: https://developer.nvidia.com/cuda-downloads&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot6.png&amp;amp;userId=48754&#xD;
  [10]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot7.png&amp;amp;userId=48754&#xD;
  [11]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at22.38.22.png&amp;amp;userId=48754&#xD;
  [12]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-06at18.46.46.png&amp;amp;userId=48754&#xD;
  [13]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at22.49.15.png&amp;amp;userId=48754&#xD;
  [14]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at22.52.43.png&amp;amp;userId=48754&#xD;
  [15]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at22.53.30.png&amp;amp;userId=48754&#xD;
  [16]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at20.37.20.png&amp;amp;userId=48754&#xD;
  [17]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at20.39.02.png&amp;amp;userId=48754&#xD;
  [18]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at23.04.38.png&amp;amp;userId=48754&#xD;
  [19]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at21.50.42.png&amp;amp;userId=48754&#xD;
  [20]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at23.10.05.png&amp;amp;userId=48754&#xD;
  [21]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at23.15.59.png&amp;amp;userId=48754&#xD;
  [22]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2017-05-07at23.16.36.png&amp;amp;userId=48754</description>
    <dc:creator>Marco Thiel</dc:creator>
    <dc:date>2017-05-07T22:21:42Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/413928">
    <title>Origami: Mathematica and Wolfram|Alpha Logos</title>
    <link>https://community.wolfram.com/groups/-/m/t/413928</link>
    <description># Origami: Mathematica and Wolfram|Alpha Logos&#xD;
![enter image description here][1]&#xD;
&#xD;
I made these models as a gift for my geeky husband. Turns out these are great home decoration and cat toys!&#xD;
If you are interested in geeky home decoration or killing some time in a geeky way, try make your own origami logos follow the instruction below.&#xD;
&#xD;
# What&amp;#039;s in the logo?&#xD;
[This blog post][2] from WolframAlpha blog explained what the logos are in geometry. The origami models are made using unit origami method, that is making simple units and assemble them together to form a certain shape. Understanding the constituents of the logos might make the assembling easier.&#xD;
&#xD;
## Spikey&#xD;
Mathematica logo v1 (Spikey) &amp;#034;consisted of the spiked solid obtained from an icosahedron (the regular 20-faced solid that is one of the five Platonic solids) with regular tetrahedra (triangular pyramids) affixed to its faces.&amp;#034; Spikey has 60 equilateral triangular faces. Our basic unit contains two equilateral triangles, which means we need to make 30 units.&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
## Wolfram|Alpha&#xD;
The logo is a rhombic hexecontahedron (rhombic refers to the fact that the faces of the solid consist of rhombi, while hexecontahedron is a word derived from the Greek, which simply means 60-faced solid). The shape of the faces is called [golden rhombus][4], which is very hard to construct in origami. Luckily this rhombus has an approximately 60 degree angle. I decided to use the same unit as Spikey. It needs 60 units to construct the Wolfram|Alpha logo.&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
# You will need&#xD;
&#xD;
- Origami paper: 30 pieces for Spikey and 60 pieces for Wolfram Alpha. If you use 7.5cm paper for Spikey or 5cm paper for Wolfram Alpha, your final work will be around 9cm in diameter.&#xD;
- Knife: To cut paper in certain size.&#xD;
- Glue: In fact you dont need anything like glue at all to finish the work. Just in case you want your model more stable and longer-lasting.&#xD;
&#xD;
## Tips&#xD;
- Don&amp;#039;t use thick paper for the work, as the folding gets very complicated in the end.&#xD;
- If you decided not to use any glue, don&amp;#039;t use slippery paper. It will drive you crazy!&#xD;
- The folding gets easier when you use larger paper, but the assembling will be looser and harder to make last.&#xD;
- Using professional origami paper will save you a lot of cutting effort.&#xD;
&#xD;
# Basic Unit Folding Instruction&#xD;
&#xD;
### Step 0&#xD;
&#xD;
Get your paper ready, colored side down. Fold the right part left to make the paper in half. Crease and open. Youll see a lot of steps just like this: Crease and open. It seems like an undo operation to what youve just done but these steps are definitely not useless. Origami needs geometry to fold certain shapes. Usually it uses creases as a reference to the following steps.&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
### Step 1&#xD;
&#xD;
Using the bottom-left corner as a pivot, fold the bottom-right corner up. Make it land on the crease made in Step 0. Crease and open. You may find our first 60° angle in the shape. Do the same folding on the opposite side.&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
### Step 2&#xD;
&#xD;
Now we have three creases intersecting in a single point. Fold bottom-left and bottom-right corners to the intersection. Crease and open. Two new intersections appeared on the bottom of the square. Fold the left and right edge to the center, make the corners land on the new intersections. For the first time, we dont need to open the folding. The width of the current shape is the length of the longer diagonal of our final rhombus.&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
### Step 3&#xD;
&#xD;
Find the intersection of the right edge and the crease made in Step 1. Using the intersection as a pivot, fold the top-right corner down so that the edge is aligned with the crease marked in the picture. Crease and open. Fold the opposite side down in the same way, but dont unfold this time. Fold the triangle upward.&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
### Step 4&#xD;
&#xD;
Pinch the top layer and pull out. Fold the bottom-right up using the crease made in Step 1. Do it again in the opposite direction: Fold the triangle down, pinch the top layer and pull out.&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
### Step 5&#xD;
&#xD;
Fold the right part to the left. Crease and open. The following movement is a little bit hard to describe. We need to pinch the marked point, pull to the left, using the center line crease. The animated graphic below might be easier to follow. Fold the triangle upward.&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
### Step 6&#xD;
&#xD;
Fold the shaded triangle inward, insert it under the layer below. Repeat Step 5-6 in the opposite direction: Pull the left part to the right, fold the triangle down and fold the shaded part inward.&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
![enter image description here][19]&#xD;
&#xD;
### Step 7&#xD;
&#xD;
Insert the marked parts one layer down. And its done! Turn over and youll see a perfect rhombus with a 60° angle.&#xD;
&#xD;
![enter image description here][20]&#xD;
&#xD;
![enter image description here][21]&#xD;
&#xD;
# Assembly Method&#xD;
&#xD;
## Spikey (1.5h to finish)&#xD;
&#xD;
### Step 0&#xD;
&#xD;
Get your 30 units ready. Before we start, we need to know how to assemble two units. Find two pockets and two joints on the unit. Fold the unit in half, and fold both joints forward as shown in the picture. When assembling, insert one joint of the unit into one pocket of the other unit until it reaches the end.&#xD;
&#xD;
![enter image description here][22]&#xD;
&#xD;
### Step 1&#xD;
&#xD;
Assemble your first 5 units. You may follow the color I used in the picture, if you wish to have a similar colored model. Our final model will have a lot (twelve) of this star-liked component.&#xD;
&#xD;
![enter image description here][23]&#xD;
&#xD;
### Step 2&#xD;
&#xD;
Attach 5 more units to the existing model. Join each new unit with two existing units on the 5-unit-structure to form a spike. We will construct twenty spikes on our final model. These 5 units added in this step are our second layer. Now we have 10 assembled units.&#xD;
&#xD;
![enter image description here][24]&#xD;
&#xD;
### Step 3&#xD;
&#xD;
We need 10 units on our third layer. Insert two units between each two units on Layer 2. Since there are 5 units on Layer 2, we will need 10 units for Layer 3. Observe the model, you will find two kinds of vertexes. The concave ones should have five units around, forming a star-liked structure, while the convex ones have three units forming a spike.&#xD;
&#xD;
![enter image description here][25]&#xD;
&#xD;
### Step 4&#xD;
&#xD;
Turn the model over, connect each two adjacent units on Layer 3 to form a spike. Assemble 5 new units to Layer 3 to form 5 more spikes.&#xD;
 &#xD;
![enter image description here][26]&#xD;
&#xD;
### Step 5&#xD;
Assemble 5 last units on the top layer to form a star-liked-structure. The final insertion might get difficult, you can fold the joint in half to make it shorter. Dont worry, the final model will still be steady enough.&#xD;
? &#xD;
![enter image description here][27]&#xD;
&#xD;
## Wolfram|Alpha (2.5h to finish) &#xD;
&#xD;
### Step 0&#xD;
&#xD;
Wolfram|Alpha logo is a rhombic hexecontahedron, that means each face is a rhombus. The insertion of the units are slightly different. We dont need to fold the unit in half, just insert the joint into the pocket of another unit. Prepare 60 red units. You may insert every 5 units together to make counting easier.&#xD;
&#xD;
![enter image description here][28]&#xD;
 &#xD;
### Step 1&#xD;
&#xD;
Use 5 units to form a star. Make 12 stars using all 60 units. Connect two stars together, every two stars have two connected vertices.&#xD;
?&#xD;
![enter image description here][29]&#xD;
&#xD;
### Step 2&#xD;
&#xD;
Follow the rule of each two stars have two connected vertices, assemble the stars. Every 6 stars can form a hemisphere. Connect two hemispheres together. And its done!&#xD;
&#xD;
![enter image description here][30]&#xD;
&#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=models.jpg&amp;amp;userId=394218&#xD;
  [2]: http://blog.wolframalpha.com/2009/05/19/whats-in-the-logo-that-which-we-call-a-rhombic-hexecontahedron/&#xD;
  [3]: /c/portal/getImageAttachment?filename=spikey.jpg&amp;amp;userId=394218&#xD;
  [4]: http://mathworld.wolfram.com/GoldenRhombus.html&#xD;
  [5]: /c/portal/getImageAttachment?filename=mathematica.jpg&amp;amp;userId=394218&#xD;
  [6]: /c/portal/getImageAttachment?filename=img1.png&amp;amp;userId=11733&#xD;
  [7]: /c/portal/getImageAttachment?filename=img2.png&amp;amp;userId=11733&#xD;
  [8]: /c/portal/getImageAttachment?filename=img3.png&amp;amp;userId=11733&#xD;
  [9]: /c/portal/getImageAttachment?filename=img4.png&amp;amp;userId=11733&#xD;
  [10]: /c/portal/getImageAttachment?filename=img5.png&amp;amp;userId=11733&#xD;
  [11]: /c/portal/getImageAttachment?filename=img6.png&amp;amp;userId=11733&#xD;
  [12]: /c/portal/getImageAttachment?filename=img7.png&amp;amp;userId=11733&#xD;
  [13]: /c/portal/getImageAttachment?filename=img8.png&amp;amp;userId=11733&#xD;
  [14]: /c/portal/getImageAttachment?filename=img9.png&amp;amp;userId=11733&#xD;
  [15]: /c/portal/getImageAttachment?filename=img10.png&amp;amp;userId=11733&#xD;
  [16]: /c/portal/getImageAttachment?filename=img11.png&amp;amp;userId=11733&#xD;
  [17]: /c/portal/getImageAttachment?filename=demo-1.gif&amp;amp;userId=394218&#xD;
  [18]: /c/portal/getImageAttachment?filename=img14.png&amp;amp;userId=11733&#xD;
  [19]: /c/portal/getImageAttachment?filename=img15.png&amp;amp;userId=11733&#xD;
  [20]: /c/portal/getImageAttachment?filename=img16.png&amp;amp;userId=11733&#xD;
  [21]: /c/portal/getImageAttachment?filename=img17.png&amp;amp;userId=11733&#xD;
  [22]: /c/portal/getImageAttachment?filename=img18.png&amp;amp;userId=11733&#xD;
  [23]: /c/portal/getImageAttachment?filename=img19.png&amp;amp;userId=11733&#xD;
  [24]: /c/portal/getImageAttachment?filename=img20.png&amp;amp;userId=11733&#xD;
  [25]: /c/portal/getImageAttachment?filename=img21.png&amp;amp;userId=11733&#xD;
  [26]: /c/portal/getImageAttachment?filename=img22.png&amp;amp;userId=11733&#xD;
  [27]: /c/portal/getImageAttachment?filename=img23.png&amp;amp;userId=11733&#xD;
  [28]: /c/portal/getImageAttachment?filename=img24.png&amp;amp;userId=11733&#xD;
  [29]: /c/portal/getImageAttachment?filename=img25.png&amp;amp;userId=11733&#xD;
  [30]: /c/portal/getImageAttachment?filename=img26.png&amp;amp;userId=11733</description>
    <dc:creator>Xueqin Cai</dc:creator>
    <dc:date>2014-12-30T21:13:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/246929">
    <title>One pixel thermal imaging camera with Mathematica and Arduino</title>
    <link>https://community.wolfram.com/groups/-/m/t/246929</link>
    <description>Triggered by a leak in my hot water boiler at home I built a thermal imaging camera using an Arduino and interfacing it with Mathematica. I tried to make up for the &amp;#034;one-pixel-resolution&amp;#034; by using Mathematica&amp;#039;s powerful image analysis abilities. This is a work in progress and I would be delighted to get some comments/suggestions from the Community. In this project, I had a lot of help from [url=http://community.wolfram.com/web/bschelter/home]Bjoern Schelter[/url], who has recently joined this Community. If you have the components and use the programs below, you should have a &amp;#034;working&amp;#034; one-pixel thermal camera after 30 minutes or so of DIY. Here&amp;#039;s a sneak peek of what we want to get out (this one is a &amp;#034;selfie&amp;#034;):&#xD;
&#xD;
[img=width: 426px; height: 270px;]/c/portal/getImageAttachment?filename=asdwefasdcsdvvafe2345QT.PNG&amp;amp;userId=11733[/img]&#xD;
&#xD;
I use the following components:[list=1]&#xD;
[*]Arduino Uno R3&#xD;
[*][url=http://www.amazon.co.uk/XINTE-MLX90614ESF-DCI-non-contact-Infrared-Temperature/dp/B00IMU0LXG/ref=sr_1_2?ie=UTF8&amp;amp;qid=1399153918&amp;amp;sr=8-2&amp;amp;keywords=Melexis]MELEXIS / MLX90614ESF-DCI / DS Digital non-contact Infrared Temperature Sensor[/url]  (~ £35 and more or less the same in USD)&#xD;
[*][url=http://www.amazon.co.uk/MG995-Servo-Sensor-Mount-Black/dp/B00EZIYCUW/ref=sr_1_3?ie=UTF8&amp;amp;qid=1399153991&amp;amp;sr=8-3&amp;amp;keywords=Pan+tilt]MG995 Servo Sensor Mount Kit 2 DOF Pan and Tilt Black[/url] (~ £24, similar in USD)&#xD;
[*]Two 4.7 kOhm resistors.&#xD;
[*]One 0.1 uF capacitor.&#xD;
[*]One small breadboard.&#xD;
[*]5V power source.&#xD;
[*]Wires. &#xD;
[/list]The idea is illustrated in this [url=http://www.youtube.com/watch?v=rcTKVOzxCmw]Youtube video[/url]. To my best knowledge, the original idea comes from a [url=http://www.theimagingsource.com/en_US/blog/posts/20090622/]project of Steffen Strobel in the German science competition &amp;#034;Jugend Forscht&amp;#034;[/url]. The main idea is to mount a non-contact temperature sensor on a pan and tilt mechanism (i.e. two servos) on a tripod. An Arduino microcontroller is then used to communicate via the serial port with Mathematica, which is used to control the servos and triggers the measurements. After the data acquisition Mathematica cleans the data and produces some thermal images (see below).&#xD;
&#xD;
We use the following wiring diagram to connect the servos and the temperature sensor to the Arduino.&#xD;
[center][img=width: 300px; height: 203px;]/c/portal/getImageAttachment?filename=ThermoCam.jpg&amp;amp;userId=48754[/img][/center]&#xD;
The resistors are 4.7kOhm and the capacitor is 0.1uF. The sensor part is taken from the [url=http://bildr.org/2011/02/mlx90614-arduino/]bildr.blog[/url], which also shows how to make Arduino talk to the sensor. The Melexis sensor that we chose has a temperature resolution of 0.02 degrees Celsius and a rather narrow field of view, which is important for our application. &#xD;
&#xD;
For the servo part, we use the standard servo.h library; an example of its application can be found [url=http://arduino.cc/en/Tutorial/sweep]here[/url].&#xD;
&#xD;
Here is a photo of the sensor/head of the device.&#xD;
[center][img=width: 320px; height: 240px;]/c/portal/getImageAttachment?filename=photo.JPG&amp;amp;userId=48754[/img][/center]&#xD;
The entire device looks like this.&#xD;
[center][img=width: 240px; height: 320px;]/c/portal/getImageAttachment?filename=7033photo4.JPG&amp;amp;userId=48754[/img][/center]&#xD;
The idea is to use Mathematica to send instructions to the servos and to initiate the measurements. To interface Mathematica with Arduino we use the [url=http://library.wolfram.com/infocenter/Demos/5726/]SerialIO package[/url]. I found [url=http://williamjturkel.net/2011/12/25/connecting-arduino-to-mathematica-on-mac-os-x-with-serialio/]this website by William Turkel[/url] very useful to make SerialIO work on my Mac; following the steps and adapting some directories makes the package work without any problems.&#xD;
&#xD;
At that point, we have everything in place, and only need to put the bits together. We first need to upload this piece of code (also attached at the bottom) to the Arduino.&#xD;
[code]#include &amp;lt;i2cmaster.h&amp;gt;&#xD;
#include &amp;lt;Servo.h&amp;gt; &#xD;
&#xD;
//Servo setup&#xD;
int servoPin1 = 9;&#xD;
int servoPin2 = 10; &#xD;
Servo servo1;  &#xD;
Servo servo2;&#xD;
int angle1 = 40;   // servo start positions in degrees &#xD;
int angle2 = 50;&#xD;
&#xD;
&#xD;
//Melexis setup&#xD;
int sensor = 0;&#xD;
int inByte = 0;&#xD;
&#xD;
&#xD;
void setup()&#xD;
{&#xD;
	Serial.begin(9600);&#xD;
	&#xD;
       // attach pan-tilt servos&#xD;
       servo1.attach(servoPin1);&#xD;
       servo2.attach(servoPin2); &#xD;
&#xD;
&#xD;
       servo1.write(angle1);&#xD;
       servo2.write(angle2);&#xD;
&#xD;
&#xD;
	//Initialise the i2c bus&#xD;
	i2c_init(); &#xD;
	PORTC = (1 &amp;lt;&amp;lt; PORTC4) | (1 &amp;lt;&amp;lt; PORTC5);//enable pullups&#xD;
       establishContact();&#xD;
}&#xD;
&#xD;
&#xD;
void loop()&#xD;
{&#xD;
 if (Serial.available() &amp;gt; 0) &#xD;
  {&#xD;
   inByte = Serial.read();&#xD;
   &#xD;
   int dev = 0x5A&amp;lt;&amp;lt;1;&#xD;
   int data_low = 0;&#xD;
   int data_high = 0;&#xD;
   int pec = 0;&#xD;
&#xD;
&#xD;
   i2c_start_wait(dev+I2C_WRITE);&#xD;
   i2c_write(0x07);&#xD;
&#xD;
&#xD;
   // read&#xD;
   i2c_rep_start(dev+I2C_READ);&#xD;
   data_low = i2c_readAck(); //Read 1 byte and then send ack&#xD;
   data_high = i2c_readAck(); //Read 1 byte and then send ack&#xD;
   pec = i2c_readNak();&#xD;
   i2c_stop();&#xD;
&#xD;
&#xD;
   //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps&#xD;
   double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)&#xD;
   double tempData = 0x0000; // zero out the data&#xD;
   int frac; // data past the decimal point&#xD;
&#xD;
&#xD;
 // Serial.print(tempData);&#xD;
 // Serial.write(inByte);&#xD;
   // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.&#xD;
   tempData = (double)(((data_high &amp;amp; 0x007F) &amp;lt;&amp;lt; 8) + data_low);&#xD;
   tempData = (tempData * tempFactor)-0.01;&#xD;
&#xD;
&#xD;
   //inByte = (float)(((data_high &amp;amp; 0x007F) &amp;lt;&amp;lt; 8) + data_low);&#xD;
&#xD;
&#xD;
  float celsius = tempData - 273.15;&#xD;
   sensor=(int)(celsius*100);&#xD;
   //float fahrenheit = (celsius*1.8) + 32;&#xD;
&#xD;
  Serial.print(sensor);&#xD;
  &#xD;
   &#xD;
   // horizontal &amp;#034;H&amp;#034;-&amp;gt; 72; reverse &amp;#034;R&amp;#034;-&amp;gt; 82; vertical &amp;#034;V&amp;#034;-&amp;gt; 86; end &amp;#034;E&amp;#034;-&amp;gt; 69&#xD;
   &#xD;
  if(inByte==72)&#xD;
  {&#xD;
   angle1=angle1+1;&#xD;
   servo1.write(angle1);&#xD;
  }&#xD;
   if(inByte==82)&#xD;
  {&#xD;
   angle1=40;&#xD;
   servo1.write(angle1);&#xD;
  }&#xD;
  if(inByte==86)&#xD;
  {&#xD;
   angle2=angle2+1;&#xD;
   servo2.write(angle2);&#xD;
  }&#xD;
    if(inByte==69)&#xD;
  {&#xD;
   angle1 = 40;   // servo back to start&#xD;
   angle2 = 50;&#xD;
   servo1.write(angle1);&#xD;
   servo2.write(angle2);&#xD;
  }&#xD;
  &#xD;
   delay(15); // 15 works; wait 15 milliseconds before printing again&#xD;
 }&#xD;
&#xD;
&#xD;
}&#xD;
&#xD;
&#xD;
&#xD;
void establishContact() &#xD;
{&#xD;
 while (Serial.available() &amp;lt;= 0) &#xD;
 {&#xD;
   Serial.print(&amp;#039;A&amp;#039;);&#xD;
   delay(100);&#xD;
 }&#xD;
}&#xD;
[/code]&#xD;
The idea is to make Mathematica communicate with the Arduino via the serial connection. The Arduino sketch shows that Ardunio is waiting for instructions, e.g. &amp;#034;H&amp;#034; to move horizontally, &amp;#034;V&amp;#034; to move vertically and &amp;#034;E&amp;#034; to go to the end position. &#xD;
[mcode](*First we load the SerialIO package. See instructions above.*)&#xD;
&#xD;
&amp;lt;&amp;lt; SerialIO`&#xD;
&#xD;
(*We test whether Mathematica&amp;#039;s applications folder is in the Path. On some Macs Mathematica will be in the /Library directory - used in this example- and in others in the /Users/username/Library directory, where &amp;#034;username&amp;#034; needs to be replaced by the correct user name.*)&#xD;
&#xD;
MemberQ[$Path, &amp;#034;/Library/Mathematica/Applications&amp;#034;]&#xD;
&#xD;
(*If this gives True all is fine. If it evaluates to False execute&#xD;
AppendTo[$Path, &amp;#034;/Library/Mathematica/Applications&amp;#034;]&#xD;
*)&#xD;
&#xD;
(*Connect to the Arduino*)&#xD;
&#xD;
myArduino = &#xD;
  SerialOpen[Quiet[FileNames[&amp;#034;tty.usb*&amp;#034;, {&amp;#034;/dev&amp;#034;}, Infinity]][[1]]];&#xD;
SerialSetOptions[myArduino, &amp;#034;BaudRate&amp;#034; -&amp;gt; 9600];&#xD;
While[SerialReadyQ[myArduino] == False, Pause[0.1]];&#xD;
&#xD;
(*Data collection, in this case 40 vertical and 70 horizontal pixels; runtime 2-3 minutes; pauses cannot be reduced much further.*)&#xD;
&#xD;
pixels = {}; SerialRead[myArduino]; For[j = 1, j &amp;lt; 41, j++, &#xD;
 For[i = 1, i &amp;lt; 71, i++, SerialWrite[myArduino, &amp;#034;H&amp;#034;]; &#xD;
  AppendTo[pixels, (SerialRead[myArduino] // ToExpression)/100.]; &#xD;
  Pause[0.1]]; SerialWrite[myArduino, &amp;#034;R&amp;#034;]; &#xD;
 SerialWrite[myArduino, &amp;#034;V&amp;#034;]; SerialRead[myArduino]; &#xD;
 Pause[0.1];]; SerialWrite[myArduino, &amp;#034;E&amp;#034;];&#xD;
&#xD;
(*After the data aquisition close the connection to Arduino*)&#xD;
SerialClose[myArduino]&#xD;
&#xD;
(*Now we can use several different ways to represent the data, note that some point at the beginning/end of the scanned lines are removed; there were too many measurements errors just after the &amp;#034;carriage return&amp;#034;*)&#xD;
&#xD;
ArrayPlot[Partition[Reverse[pixels], 70][[All, 2 ;; -10]], &#xD;
 ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;]&#xD;
&#xD;
(*here&amp;#039;s another colour scheme.*)&#xD;
ArrayPlot[Partition[Reverse[pixels], 70][[All, 2 ;; -10]], &#xD;
&#xD;
(*Occasionally there are some outliers in the measurements; here we clean them out.*)&#xD;
ArrayPlot[&#xD;
 Partition[Reverse[pixels /. x_ /; x &amp;gt; 35. -&amp;gt; 35.], 70][[All, &#xD;
   2 ;; -10]], ColorFunction -&amp;gt; &amp;#034;Temperature&amp;#034;]&#xD;
 ColorFunction -&amp;gt; &amp;#034;Temperature&amp;#034;]&#xD;
&#xD;
(*This last one uses interpolation to make the image smoother.*)&#xD;
&#xD;
ListContourPlot[&#xD;
 Partition[Reverse[Log /@ pixels /. x_ /; x &amp;gt; 35. -&amp;gt; 35.], &#xD;
   70][[-1 ;; 1 ;; -1, 1 ;; -10]], AspectRatio -&amp;gt; 0.9, &#xD;
 ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;, PlotRange -&amp;gt; All, &#xD;
 InterpolationOrder -&amp;gt; 2, Contours -&amp;gt; 60, ContourStyle -&amp;gt; None][/mcode][center][/center]So here&amp;#039;s a photo of my broken boiler and its scan:&#xD;
[center][img=width: 518px; height: 257px;]/c/portal/getImageAttachment?filename=BoilerScan.jpg&amp;amp;userId=48754[/img][/center]&#xD;
Because of the scanning procedure (which just looks at the angle and does not use any projection), the scan is slightly distorted, but it is possible to recognize the main features and even the sticker on the front!&#xD;
&#xD;
It appears that this rather primitive device can also be used to analyse electrical components. Here is an image of my MacBook Pro. [center][img=width: 450px; height: 306px;]/c/portal/getImageAttachment?filename=Laptop1.jpg&amp;amp;userId=48754[/img][/center]&#xD;
 The position of the CPU becomes quite obvious.&#xD;
&#xD;
There are many things that need to be improved: &#xD;
&#xD;
(i) First, there is the projection issue. The scanner does scan angles. It needs to be projected to a 2D plane. One might use an ultrasonic distance sensor to get better results.&#xD;
(ii) The device needs to be calibrated.&#xD;
(iii) A user interface is needed. It would be useful to click on the image and get the temperature reading.&#xD;
(iv) The communication between Mathematica and the Arduino need to be improved. The starting position of 40/50 degrees is hard-coded into the Arduino sketch. It should be done by the Mathematica code.&#xD;
(v) We have not even started to use Mathematica&amp;#039;s features on this. Much image processing could be done. The image should be overlayed to a normal photo of the object that is scanned. Manipulate could be used to change thresholds, i.e. the threshold to cut-off outliers, which is currently set to 35 degrees. &#xD;
(vi) The speed might be improved. I suppose that the scanning time of 3 minutes or so is typical for these devices, but one might improve that a bit. Also, Mathematica could use edge-detection to determine regions where a higher scan density would be helpful to get a better resolution. This only makes sense if the servos could be directed to a certain position much more precisely; alternatively, we could use random positions, which then are precisely determined using an accelerometer or so.&#xD;
&#xD;
There is of course much more to do. In spite of this being work in progress, I wanted to share this project, and hope for helpful comments.&#xD;
&#xD;
I attach the Mathematica notebook. I have a movie of the scanning process and the actual arduino sketch which I cannot upload directly. Here are links to the [url=https://www.dropbox.com/s/sm2prb5w0wrqexp/ThermoCamera_Forum.zip]arduino sketch[/url] and the [url=https://www.dropbox.com/s/wpgpww8a7jhjfn0/Scan.MOV]scanning movie[/url].&#xD;
&#xD;
M.</description>
    <dc:creator>Marco Thiel</dc:creator>
    <dc:date>2014-05-04T00:48:33Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/315748">
    <title>Programming the world with Arduino and Wolfram Language</title>
    <link>https://community.wolfram.com/groups/-/m/t/315748</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/4d655a10-832e-4ace-b937-6d5a702289a3</description>
    <dc:creator>Ian Johnson</dc:creator>
    <dc:date>2014-08-10T17:56:06Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/139463">
    <title>Creating a 3D mesh plot and exporting it to an STL file for 3D printing</title>
    <link>https://community.wolfram.com/groups/-/m/t/139463</link>
    <description>Hello all,&#xD;
&#xD;
I&amp;#039;ve been trying to create a 3 D plot from my data. I have my X,Y, Z matrices, where Z = f(X,Y). I have my matrices in excel, which I&amp;#039;ve imported to Mathematica.&#xD;
A little bit of background here - I&amp;#039;ve not used Mathematica before. But fairly comfortable with Matlab. I&amp;#039;m trying to use Mathematica because it lets me create plots where I can create 3D models with tubes as opposed to surfaces on Matlab.&#xD;
 My final goal is to create a 3D surface and export it as an STL file so that it can be printed using a 3D printer.&#xD;
&#xD;
Here&amp;#039;s an image of what I&amp;#039;m trying to make:&#xD;
&#xD;
[img=width: 291px; height: 451px;]/c/portal/getImageAttachment?filename=aO24IZc.jpg&amp;amp;userId=11733[/img]&#xD;
&#xD;
I&amp;#039;d appreciate it if someone can help me with this.&#xD;
Thanks.</description>
    <dc:creator>Phalgun Lolur</dc:creator>
    <dc:date>2013-10-16T00:43:33Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/434022">
    <title>XKCD in LUV and relationships: semantic proximity of similar colors</title>
    <link>https://community.wolfram.com/groups/-/m/t/434022</link>
    <description>*Images / animations are large, **wait till they load**. The best part IMHO is at the end. Huge table is NOT the end.*&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
A color can be a hard thing to pinpoint. A harder question, perhaps: **Do visually close colors evoke close semantic descriptions?** Is **electric lime** close to **goblin grin**? Thats not RGB but these are real colors. At least according to public color poll run by ever-inventive creator of XKCD comic Randall Munroe. And from 222,500 user sessions and over five million colors we finally can pose a question: if visual similarity of colors - like this graph (I will show how to build it from XKCD data later):&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
can be used to define &amp;#034;semantic proximity&amp;#034; of subjective color descriptions ...like these ones (also [from XKCD data][2]):&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
Well, we will investigate, or at least try to pinpoint, visual similarity to comprehend the semantic one (if there is any). BTW, this is not a typo, -  ladies do prefer to use camel for color! And I am not going to comment about what type of glasses gentlemen see the world through. So what does programming have to do with this? Patience, there is a huge chart and a network - way down this post  result of some coding and probably a few more jokes. When Randall Munroe published the poll data there were a few efforts to visualize results. [Simple table by XKCD][5] like this &#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
was a bit disorienting for me because colors were visually random. Data Pointed efforts were excellent. But [first one][7] had too few most-popular names (while stunning): &#xD;
&#xD;
[![enter image description here][8]][9]&#xD;
&#xD;
[The second one][10], quite an [interactive marvel][11], had some tiny points which were hard to see and easy to miss with good names:&#xD;
&#xD;
[![enter image description here][12]][13]&#xD;
&#xD;
I wanted to browse all ~1000 names but in a sort of consistent color-wise way.  **The main point being, when i see a &amp;#034;goblin green&amp;#034; color, I would like neighboring colors to be similar, so I can see which names should also be close semantically. Basically I wanted to compare names of similar colors.** Lets import data and see a sample:&#xD;
&#xD;
    data = Import[&amp;#034;http://xkcd.com/color/rgb.txt&amp;#034;, &amp;#034;Data&amp;#034;][[All, 1 ;; 2]];&#xD;
    data // Length&#xD;
    data[[;; 4]] // Column&#xD;
&#xD;
`949&#xD;
&#xD;
{{{&amp;#034;cloudy blue&amp;#034;, &amp;#034;#acc2d9&amp;#034;}},&#xD;
&#xD;
 {{&amp;#034;dark pastel green&amp;#034;, &amp;#034;#56ae57&amp;#034;}},&#xD;
&#xD;
 {{&amp;#034;dust&amp;#034;, &amp;#034;#b2996e&amp;#034;}},&#xD;
&#xD;
 {{&amp;#034;electric lime&amp;#034;, &amp;#034;#a8ff04&amp;#034;}}`&#xD;
&#xD;
Note, colors are given as hexadecimal HTML codes. We can use Interpreter to get colors in WL format, say RGB:&#xD;
&#xD;
    clrs = Interpreter[&amp;#034;Color&amp;#034;][data[[All, 2]]];&#xD;
    Multicolumn[clrs, 30]&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
 We, of course, could just throw all the points on a chromatic diagram:&#xD;
&#xD;
    ChromaticityPlot[{clrs, &amp;#034;RGB&amp;#034;}, PlotTheme -&amp;gt; &amp;#034;Detailed&amp;#034;, &#xD;
     Appearance -&amp;gt; {&amp;#034;VisibleSpectrum&amp;#034;, &amp;#034;Wavelengths&amp;#034; -&amp;gt; True}]&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
...or in 3D&#xD;
&#xD;
    ChromaticityPlot3D[{clrs, &amp;#034;RGB&amp;#034;}, PlotTheme -&amp;gt; &amp;#034;Marketing&amp;#034;, &#xD;
     Appearance -&amp;gt; &amp;#034;VisibleSpectrum&amp;#034;, SphericalRegion -&amp;gt; True]&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
...but that of course would not get me anywhere with readability of color names. So I decided to do the simplest thing - a table. Columns would arrange colors in one way while rows in another. This won&amp;#039;t be perfect, but let&amp;#039;s try it. For example in [LUV color space][17] there are 3 parameters:&#xD;
&#xD;
- L - lightness, approximate luminance&#xD;
- U - color&#xD;
- V - color&#xD;
&#xD;
LUV is a color space designed to have perceptual **uniformity**; i.e. equal changes in its components will be perceived by a human to have equal effects. I hope this uniformity will help me to rearrange the colors. LUV is extensively used for applications such as computer graphics which deal with colored lights and is device independent. Let&amp;#039;s get data in a convenient format:&#xD;
&#xD;
    dataP = MapAt[ColorConvert[Interpreter[&amp;#034;Color&amp;#034;][#], &amp;#034;LUV&amp;#034;] &amp;amp;, #, 2] &amp;amp; /@ data;&#xD;
    dataP[[;; 5]] // Column&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
I will sort by abstract colors U and V and sacrifice lightness L to keep things simple and 2-dimensional. 2D sorting already will be helpful. Once **data are sorted according to U**&#xD;
&#xD;
    dataPA = SortBy[dataP, #[[2, 2]] &amp;amp;];&#xD;
&#xD;
we ragged-partition them in 10 columns and **sort each column according to V**:&#xD;
&#xD;
    dataPAB = SortBy[#, #[[2, 3]] &amp;amp;] &amp;amp; /@ Partition[dataPA, 10, 10, 1, {}];&#xD;
    dataPAB[[;; 5, ;; 5]] // TableForm&#xD;
&#xD;
![enter image description here][19]&#xD;
&#xD;
Note the tricky syntax for `Partition` to keep partitioning ragged and not cut off a short remaining column. Now I will just build a grid where cells are rectangles of color with the color name written inside. But here is a tricky part: text color should be in contrast to the color of cell background, to be readable. Good that we have ColorNegate! We can use ColorNegate[x] when cell color is x - cool! ...except when cell color is gray because&#xD;
&#xD;
    ColorNegate[Gray] // InputForm&#xD;
`GrayLevel[0.5]`&#xD;
&#xD;
Hmmm... Well let&amp;#039;s be inventive. When `ColorDistance` of a cell-color too close to `Gray` - we&amp;#039;ll simply use `White` for text. Define:&#xD;
&#xD;
    rect[{x_, y_}] := Framed[Style[x, 10, &#xD;
       If[ColorDistance[ColorNegate[y], Gray] &amp;lt; .2, White, &#xD;
        ColorNegate[y]]], Background -&amp;gt; y, ImageSize -&amp;gt; {80, 50}]&#xD;
&#xD;
Check:&#xD;
&#xD;
    rect@{&amp;#034;speechless green&amp;#034;, Green}&#xD;
&#xD;
![enter image description here][20]&#xD;
&#xD;
Great, we now ready. Behold, read, and wonder (right-click and &amp;#034;open image in new tab&amp;#034; to see a bigger version). Do not forget - there is more stuff after this table.&#xD;
&#xD;
    Grid[ParallelMap[rect, dataPAB, {2}], Spacings -&amp;gt; {0, 0}]&#xD;
&#xD;
![enter image description here][21]&#xD;
&#xD;
Well, could there a be a better or different way to visualize relationships? What about a network graph - judging by [social analytics approaches][22] - they are the best to represent relationships. Let&amp;#039;s make a clean cut and get the data again:&#xD;
&#xD;
    data = Import[&amp;#034;http://xkcd.com/color/rgb.txt&amp;#034;, &amp;#034;Data&amp;#034;][[All, 1 ;; 2]];&#xD;
&#xD;
And we turn strings of color descriptions into WL format colors with Interpreter again:&#xD;
&#xD;
    data = Reverse[MapAt[Interpreter[&amp;#034;Color&amp;#034;], #, 2]] &amp;amp; /@ data;&#xD;
    data[[;; 5]] // Column&#xD;
&#xD;
![enter image description here][23]&#xD;
&#xD;
Now, like on Facebook - you have friends and they have friends and so on - we need to find closest friends of each color. We can use `ColorDistance` for that that utilizes many measures, for example `Euclidean` distance in `LABColor` and such. Let&amp;#039;s define our distance function:&#xD;
&#xD;
    neco[{u_, v_}, {x_, y_}] := ColorDistance[u, x]&#xD;
&#xD;
Now in WL we have an awesome function `Nearest` that can operate on any objects to deduce the closest to it objects:&#xD;
&#xD;
    neig[c_] := Nearest[DeleteCases[data, c], c, {All, .16}, DistanceFunction -&amp;gt; neco]&#xD;
&#xD;
where `{All, .16}` means *among all objects find closest within radius 0.16 as given by `DistanceFunction`*. `DeleteCases` is needed exclude the original object as its own friend. Check:&#xD;
&#xD;
![enter image description here][24]&#xD;
&#xD;
This function will connect the original color and its closest friends within 0.16 measure of `DistanceFunction`&#xD;
&#xD;
    edgs[v_] := v &amp;lt;-&amp;gt; # &amp;amp; /@ neig[v]&#xD;
&#xD;
Check:&#xD;
&#xD;
![enter image description here][25]&#xD;
&#xD;
Noticed the trick with `Sort`? `Sort` will flip the edges to orient `b&amp;lt;-&amp;gt;a` as `a&amp;lt;-&amp;gt;b` so we can delete duplicates using `Union` when building all edges between all colors and their friends:&#xD;
&#xD;
    edgsALL = Union[Sort /@ Flatten[ParallelMap[edgs, data], 1]];&#xD;
&#xD;
To get a simple color-proximity `Graph` define a `VertexLabels` function:&#xD;
&#xD;
    panelLabel[lbl_] := lbl[[1]]&#xD;
&#xD;
And now behold:&#xD;
&#xD;
    g = Graph[data, edgsALL, VertexLabels -&amp;gt; Table[i -&amp;gt; Placed[{i}, Center, panelLabel], {i, data}], &#xD;
      EdgeStyle -&amp;gt; Opacity[.2], EdgeShapeFunction -&amp;gt; &amp;#034;Line&amp;#034;, VertexSize -&amp;gt; 0, ImageSize -&amp;gt; 900]&#xD;
&#xD;
![enter image description here][26]&#xD;
&#xD;
To build a large scale browseable network with readable labels define new label function:&#xD;
&#xD;
    panelLabel[lbl_] := Panel[Style[lbl[[2]], 14, Bold, &#xD;
       If[ColorConvert[lbl[[1]], &amp;#034;GrayLevel&amp;#034;][[1]] &amp;lt; .5, White, Black]], &#xD;
      FrameMargins -&amp;gt; 0, Background -&amp;gt; lbl[[1]]]&#xD;
&#xD;
Instead of negating the color of text (as we did in the huge table) we make it `White` if `GrayLevel` of background is `&amp;lt; 0.5` and Black if it is `&amp;gt; 0.5`. A different approach. Check:&#xD;
&#xD;
![enter image description here][27]&#xD;
&#xD;
Perfect. Now the monster network:&#xD;
&#xD;
    g = Graph[data, edgsALL, VertexLabels -&amp;gt; &#xD;
        Table[i -&amp;gt; Placed[{i}, Center, panelLabel], {i, data}], &#xD;
       EdgeStyle -&amp;gt; Opacity[.2], EdgeShapeFunction -&amp;gt; &amp;#034;Line&amp;#034;, &#xD;
       VertexSize -&amp;gt; 0, ImageSize -&amp;gt; 10000];&#xD;
&#xD;
To browse it open [**==&amp;gt; THIS LINK &amp;lt;==**][28] in a **NEW TAB** and zoom in/out. It will look something like this:&#xD;
&#xD;
![enter image description here][29]&#xD;
&#xD;
Interesting part is why did we chose **radius 0.16**? Two words - [percolation theory][30]. **Radius 0.16** for XKCD data serves as [percolation threshold][31] much below which the network has a lot of disconnected components and much above which the network is &amp;#034;overconnected&amp;#034; complete `Graph`. The former is lack of information and the later is &amp;#034;too much&amp;#034;  info for meaningful sharp description. My intuition is that percolation threshold is the golden middle that allows for concise but precise definitions. You can experiment lowering it and increasing it to see how network under- and over- connects. Percolation threshold is that moment when you can get from one description to another and then next one and get to any other description. Using association chains you can deduce deeper connections among remote meanings **in the whole network**. This is of course is speculative and arguable. Let me know if you are familiar with relevant research or have an opinion. And now using percolation threshold we can define new colors based on old descriptions:&#xD;
&#xD;
    Labeled[Grid[neig[{#, &amp;#034;&amp;#034;}], Frame -&amp;gt; All], &#xD;
       Row[{&amp;#034;New clor &amp;#034;, Graphics[{#, Disk[]}, ImageSize -&amp;gt; 30], &amp;#034; is like&amp;#034;}], Top] &amp;amp;@RandomColor[]&#xD;
&#xD;
![enter image description here][32]&#xD;
&#xD;
Concise (much less than full ~1000 descriptors) but precise (you &amp;#034;got the feeling&amp;#034;). Now what is next? It would be really great to make a &amp;#034;machine&amp;#034;  have an imagination and form its own new color descriptors. How? - not sure but probably running [WL machine learning][33] on some large color-related corpora. When I figure it out - I will write a continuation. Or maybe you will?&#xD;
&#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=lablelessnet.png&amp;amp;userId=11733&#xD;
  [2]: http://blog.xkcd.com/2010/05/03/color-survey-results/&#xD;
  [3]: /c/portal/getImageAttachment?filename=female_colors.gif&amp;amp;userId=11733&#xD;
  [4]: /c/portal/getImageAttachment?filename=male_colors.gif&amp;amp;userId=11733&#xD;
  [5]: http://xkcd.com/color/rgb/&#xD;
  [6]: /c/portal/getImageAttachment?filename=assorted_colors.png&amp;amp;userId=11733&#xD;
  [7]: http://www.datapointed.net/2010/06/xkcd-color-name-strata/&#xD;
  [8]: /c/portal/getImageAttachment?filename=color_name_strata_l.jpg&amp;amp;userId=11733&#xD;
  [9]: http://www.datapointed.net/2010/06/xkcd-color-name-strata/&#xD;
  [10]: http://www.datapointed.net/2010/09/men-women-color-names/&#xD;
  [11]: http://www.datapointed.net/visualizations/color/men-women-color-names-d3/&#xD;
  [12]: /c/portal/getImageAttachment?filename=2015-02-02_16-30-13.png&amp;amp;userId=11733&#xD;
  [13]: http://www.datapointed.net/visualizations/color/men-women-color-names-d3/&#xD;
  [14]: /c/portal/getImageAttachment?filename=asd3q4tewrhsfghbdas453Q.png&amp;amp;userId=11733&#xD;
  [15]: /c/portal/getImageAttachment?filename=dsfg4wrtyhgfsgw45temyj.png&amp;amp;userId=11733&#xD;
  [16]: /c/portal/getImageAttachment?filename=asdd43gsrty54wyrht.gif&amp;amp;userId=11733&#xD;
  [17]: http://reference.wolfram.com/language/ref/LUVColor.html&#xD;
  [18]: /c/portal/getImageAttachment?filename=2015-02-02_17-22-39.png&amp;amp;userId=11733&#xD;
  [19]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-02at5.29.43PM.png&amp;amp;userId=11733&#xD;
  [20]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-02at5.44.37PM.png&amp;amp;userId=11733&#xD;
  [21]: /c/portal/getImageAttachment?filename=sdf34qeadfty65tyejnfsgd.png&amp;amp;userId=11733&#xD;
  [22]: http://en.wikipedia.org/wiki/Social_network&#xD;
  [23]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-03at9.00.52AM.png&amp;amp;userId=11733&#xD;
  [24]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-03at9.10.19AM.png&amp;amp;userId=11733&#xD;
  [25]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-03at9.13.45AM.png&amp;amp;userId=11733&#xD;
  [26]: /c/portal/getImageAttachment?filename=lablelessnet.png&amp;amp;userId=11733&#xD;
  [27]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-03at9.20.41AM.png&amp;amp;userId=11733&#xD;
  [28]: http://community.wolfram.com/c/portal/getImageAttachment?filename=awrsdfsd4345gsgs.jpg&amp;amp;userId=11733&#xD;
  [29]: /c/portal/getImageAttachment?filename=ezgif.com-optimize.gif&amp;amp;userId=11733&#xD;
  [30]: http://en.wikipedia.org/wiki/Percolation_theory&#xD;
  [31]: http://en.wikipedia.org/wiki/Percolation_theory&#xD;
  [32]: /c/portal/getImageAttachment?filename=ScreenShot2015-02-03at10.31.32AM.png&amp;amp;userId=11733&#xD;
  [33]: http://www.wolfram.com/mathematica/new-in-10/machine-learning/</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2015-02-02T23:52:47Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/995095">
    <title>How many animals can one find in a random image?</title>
    <link>https://community.wolfram.com/groups/-/m/t/995095</link>
    <description>![enter image description here][18]&#xD;
&#xD;
The long evolutionary history of humans has optimized the recognition of animals in the human vision system. To escape predators and to find food. Sometimes we believe to see animals and human faces, even if there aren&amp;#039;t any, this phenomena is called [pareidolia][1], or more generally apophenia. Classic examples are Jesus on a toast ([Liu2014][2]), the image on the shroud of Turin ([Sheen2016][3]), Elvis in a potato chip ([Voss2011][4]), and the face on Mars ([Martinez-Conde2012][5]).  In many cases, in about 100ms ([Naber2012][6]) humans can identify animal shapes. Some animals, e.g. snakes are potentially identified much faster ([VanLe2013][7]).&#xD;
&#xD;
So, an interesting question might be: how often do we (believe to) see animals in an genuinely random image?&#xD;
&#xD;
Here is, in the literal sense of the word, a random image of size 300*300 pixels:&#xD;
&#xD;
    SeedRandom[4056380]; &#xD;
    dim=300;&#xD;
    randomImage = Image[Table[RandomChoice[{2,1}-&amp;gt;{0,1}],{dim},{dim}]];&#xD;
    Show[randomImage,ImageSize -&amp;gt; 300]&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
No animal shapes are directly visible.&#xD;
&#xD;
Using ImageMesh we can get the individual/connected components (some potentially animal-like shaped) as regions (this operation is not fully deterministic, so results below may vary).&#xD;
&#xD;
    Show[imesh=ImageMesh[randomImage,Method-&amp;gt;&amp;#034;DualMarchingSquares&amp;#034;],ImageSize -&amp;gt; 300]&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
These are the individual shapes. We ignore too small and too large regions. For our image we find neatly 400 regions.&#xD;
&#xD;
    (* this takes a minute *)&#xD;
    shapes=Select[ConnectedMeshComponents@imesh,18&amp;lt; Area[#]&amp;lt;2000&amp;amp;];&#xD;
    Length[shapes]&#xD;
&#xD;
`393`&#xD;
&#xD;
These are the shapes positioned in the original image.&#xD;
&#xD;
    Show[HighlightMesh[#,Style[2, RandomColor[]]]&amp;amp;/@ shapes]&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
For later use, we define one function to make a random image and get the shapes.&#xD;
&#xD;
    getShapes[{black_,white_}, dim_] :=Select[ConnectedMeshComponents@&#xD;
    ImageMesh[Image[Table[RandomChoice[{black,white}-&amp;gt;{0,1}],{dim},{dim}]],&#xD;
    Method-&amp;gt;&amp;#034;DualMarchingSquares&amp;#034;],18&amp;lt; Area[#]&amp;lt;2000&amp;amp;]&#xD;
&#xD;
As we want to interpret the shapes as animals, we smooth the edges. We switch from regions to graphics.&#xD;
&#xD;
    smooth[reg_] :=Graphics[{Lighter[Blue], &#xD;
    (ToExpression[ToString[InputForm@reg],StandardForm,Hold] /.&#xD;
    HoldPattern[BoundaryMeshRegion[v_,b__,___Rule]]:&amp;gt;GraphicsComplex[v,FilledCurve[{b}/.&#xD;
    Line[l_]:&amp;gt; BSplineCurve[DeleteDuplicates[Flatten[l,1]],&#xD;
    SplineClosed-&amp;gt;True,SplineDegree-&amp;gt;2]]])[[1]]}]&#xD;
&#xD;
We also allow changing the orientation and color.&#xD;
&#xD;
    rotate[g_,?_] := With[{m={{Cos[?],Sin[?]},{-Sin[?], Cos[?]}}},g/.&#xD;
    GraphicsComplex[v_, r__]:&amp;gt; GraphicsComplex[m.#&amp;amp;/@ v,r]]&#xD;
    &#xD;
    flip[g_] := g/.GraphicsComplex[v_, r__]:&amp;gt; GraphicsComplex[{-1,1}#&amp;amp;/@ v,r]&#xD;
    &#xD;
    recolor[g_,col_] := g/.c_RGBColor:&amp;gt;col&#xD;
    &#xD;
    animalize[g_,{f_,?_,col_}] := Graphics[ recolor[rotate[If[f, flip,Identity]@&#xD;
    smooth[g],?],col], PlotRange -&amp;gt; All]&amp;amp;[smooth[g]]&#xD;
&#xD;
Here are some of the shapes that were hiding in the above image.The human eye tries to see fishes, wales, birds, squirrels, frogs, ducks, sea-horses, bunnies, deers, dogs, cats and similar creatures as well as human heads.&#xD;
&#xD;
    GraphicsGrid[Partition[Show[#, ImageSize -&amp;gt; 120,Frame-&amp;gt;True,FrameTicks-&amp;gt;False]&amp;amp;/@#,5]&amp;amp;@&#xD;
    { animalize[shapes[[18]],{False,1.8,GrayLevel[0.1]}],&#xD;
      animalize[shapes[[99]],{False,1.1,Darker[Yellow]}], &#xD;
      animalize[shapes[[6]],{False,0.7,Darker[Blue]}],&#xD;
      animalize[shapes[[14]],{False,0.,Darker[Brown]}],&#xD;
      animalize[shapes[[4]],{False,0.5,Darker[Red]}],&#xD;
      animalize[shapes[[23]],{False,0,Darker[Orange]}],&#xD;
      animalize[shapes[[76]],{False,0,Darker[Orange,0.6]}],&#xD;
      animalize[shapes[[95]],{False,-1.5,Darker[Green,0.4]}], &#xD;
      animalize[shapes[[9]],{False,0.,Brown}],&#xD;
      animalize[shapes[[163]],{False,1.1,Darker[Purple]}]},&#xD;
    Spacings-&amp;gt;{5,-20}]&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
Looking at the last selection shows the importance of one or two eyes in the shapes ([Yang2015][12]). Eyes are often used by nature for deception ([Steven2014][13]).&#xD;
&#xD;
A small Manipulate will allow to optimize the animal-perception by changing color, orientation, and aspect ratio.&#xD;
&#xD;
    makeManipulate[shape_]:=Manipulate[Graphics[ recolor[rotate[If[f, flip,Identity]@ #[[1]],?],col],&#xD;
    ImageSize -&amp;gt; 120,AspectRatio-&amp;gt;ar,PlotRange -&amp;gt; All],&#xD;
    OpenerView[{&amp;#034;modify&amp;#034;,Column[{&#xD;
    Control[{{?,0,&amp;#034;rotate&amp;#034;},-Pi,Pi,ImageSize-&amp;gt;Small}],&#xD;
    Control[{{f,False,&amp;#034;reflect&amp;#034;},{True,False},ImageSize-&amp;gt;Small}],&#xD;
    Control[{{col, Darker[Blue],&amp;#034;color&amp;#034;},Red,ImageSize-&amp;gt;Tiny}],&#xD;
    Control[{{ar, Automatic,&amp;#034;aspect ratio&amp;#034;},0.2,5,ImageSize-&amp;gt;Small}]}]}],&#xD;
    SaveDefinitions-&amp;gt;True,TrackedSymbols:&amp;gt;True]&amp;amp;[smooth[#]]&amp;amp;@ shape&#xD;
    &#xD;
    Manipulate[makeManipulate[shapes[[j]]],{{j,141,&amp;#034;&amp;#034;},1, Length[shapes],1,Appearance-&amp;gt;&amp;#034;Labeled&amp;#034;}]&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
Here are some more animal-shapes found in other random images. &#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
One could now try to automate the finding of animals using ImageIdentify. In general, the interpretation of ImageIdentify will depend on the image orientation. So, we maximize over different orientations.&#xD;
&#xD;
    getOptimalAnimal[shape_] := &#xD;
    Module[{s=smooth[shape][[1]],tab,ras,tab2},&#xD;
    tab=Table[{(ras=Rasterize[Graphics[rotate[s,\[Alpha]],ImageSize -&amp;gt; 120,PlotRange -&amp;gt; All]]),&#xD;
          Normal@KeyDrop[ImageIdentify[ras,&amp;#034;animal&amp;#034;,2,&amp;#034;Probability&amp;#034;],Entity[&amp;#034;Concept&amp;#034;,#]&amp;amp;/@&#xD;
     {&amp;#034;Person::93r37&amp;#034;,&amp;#034;Hominid::tt93h&amp;#034;,&amp;#034;Mammal::nt5bz&amp;#034;,&#xD;
    &amp;#034;SeaStar::46w97&amp;#034;,&amp;#034;Shark::632s8&amp;#034;,&amp;#034;CanisFamiliaris::597qc&amp;#034;}]},&#xD;
    {\[Alpha], 0, 2Pi, 2Pi/24}]; &#xD;
    tab2=Sort[{#2[[1,2]], #2[[1,1]], #1}&amp;amp;@@@DeleteCases[ tab,{_,{}}]];&#xD;
    {tab2[[-1,3]]-&amp;gt;tab2[[-1,2]],&amp;#034;Probabilty&amp;#034; -&amp;gt; tab2[[-1,1]]}]&#xD;
&#xD;
As ImageIdentify was trained on real photographs, it is not the ideal tool for this task. It is biased towards humans, mammals, and sharks.&#xD;
&#xD;
    getOptimalAnimal[shapes[[10]]]&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
    getOptimalAnimal[shapes[[27]]]&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
To answer the original question: in a random 400x400 pixel image, one easily finds a few dozen animals. Here are four dozen animal-shape like smoothed regions from random 400x400 image.&#xD;
&#xD;
    Module[{gs, gs2},&#xD;
     SeedRandom[2222];&#xD;
     gs = getShapes[{2, 1}, 400];&#xD;
     gs2 = {animalize[gs[[3]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[6]], {False, 1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[9]], {False, 1.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[15]], {False, -1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[17]], {False, 0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[30]], {True, 2.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[39]], {False, 0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[40]], {True, -0.1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[48]], {False, -0.1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[53]], {True, -0.1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[55]], {True, -0.1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[62]], {True, 2.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[64]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[65]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[68]], {False, -0.2, GrayLevel[0.1]}], &#xD;
       animalize[gs[[73]], {True, -0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[81]], {False, 0.2, GrayLevel[0.1]}], &#xD;
       animalize[gs[[86]], {True, 3.4, GrayLevel[0.1]}], &#xD;
       animalize[gs[[97]], {False, 0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[100]], {False, 0.9, GrayLevel[0.1]}], &#xD;
       animalize[gs[[101]], {False, 2.6, GrayLevel[0.1]}], &#xD;
       animalize[gs[[115]], {False, 4.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[124]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[125]], {False, 2.9, GrayLevel[0.1]}], &#xD;
       animalize[gs[[139]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[146]], {False, -1.6, GrayLevel[0.1]}], &#xD;
       animalize[gs[[175]], {False, -1., GrayLevel[0.1]}], &#xD;
       animalize[gs[[201]], {True, -0.5, GrayLevel[0.1]}], &#xD;
       animalize[gs[[209]], {True, 3.1, GrayLevel[0.1]}], &#xD;
       animalize[gs[[210]], {False, -1.4, GrayLevel[0.1]}], &#xD;
       animalize[gs[[218]], {True, 3.2, GrayLevel[0.1]}], &#xD;
       animalize[gs[[227]], {True, -0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[229]], {True, 0.9, GrayLevel[0.1]}], &#xD;
       animalize[gs[[253]], {True, 0., GrayLevel[0.1]}], &#xD;
       animalize[gs[[273]], {True, -0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[278]], {True, 1., GrayLevel[0.1]}], &#xD;
       animalize[gs[[282]], {True, 3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[298]], {False, 0, GrayLevel[0.1]}], &#xD;
       animalize[gs[[299]], {False, 0.6, GrayLevel[0.1]}], &#xD;
       animalize[gs[[318]], {False, 2., GrayLevel[0.1]}], &#xD;
       animalize[gs[[326]], {False, 3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[340]], {False, -1.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[352]], {True, -13, GrayLevel[0.1]}], &#xD;
       animalize[gs[[361]], {True, -13, GrayLevel[0.1]}], &#xD;
       animalize[gs[[365]], {False, 2.4, GrayLevel[0.1]}], &#xD;
       animalize[gs[[377]], {True, 2.6, GrayLevel[0.1]}], &#xD;
       animalize[gs[[395]], {False, 0.3, GrayLevel[0.1]}], &#xD;
       animalize[gs[[405]], {True, 0.3, GrayLevel[0.1]}]};&#xD;
     Grid[Partition[Framed[Show[#, ImageSize -&amp;gt; 100]] &amp;amp; /@ &#xD;
        SortBy[gs2, FullOptions[#, AspectRatio] &amp;amp;], 6]]]&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
Using different method options for ImageMesh gives different results. Here are some animal-shaped regions from a 300*300 image and method &amp;#034;MarchingSquares&amp;#034;.&#xD;
&#xD;
![enter image description here][19]&#xD;
&#xD;
&#xD;
  [1]: https://en.wikipedia.org/wiki/Pareidolia&#xD;
  [2]: https://dx.doi.org/10.1016/j.cortex.2014.01.013&#xD;
  [3]: https://doi.org/10.1163/15736121-12341320&#xD;
  [4]: http://dx.doi.org/10.1093/cercor/bhr315&#xD;
  [5]: https://www.scientificamerican.com/article/a-faithful-resemblance/&#xD;
  [6]: http://dx.doi.org/10.1167/12.1.25&#xD;
  [7]: http://dx.doi.org/10.1073/pnas.1312648110&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=4356yretet465yhdfreg5w4ytrg.png&amp;amp;userId=11733&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=fdfgnsgt65whtr.png&amp;amp;userId=11733&#xD;
  [10]: http://community.wolfram.com//c/portal/getImageAttachment?filename=dfgdhcvbcbcx34tq.png&amp;amp;userId=11733&#xD;
  [11]: http://community.wolfram.com//c/portal/getImageAttachment?filename=dfg4dsgdfsgdqy546hfgsnbv.png&amp;amp;userId=11733&#xD;
  [12]: http://arxiv.org/pdf/1509.04954&#xD;
  [13]: http://dx.doi.org/10.1093/czoolo/60.1.26&#xD;
  [14]: http://community.wolfram.com//c/portal/getImageAttachment?filename=weretregdfdgdscbx3454y6rtdfgsb.png&amp;amp;userId=11733&#xD;
  [15]: http://community.wolfram.com//c/portal/getImageAttachment?filename=sadfert543wyhdfgdhfd5676e565w44.png&amp;amp;userId=11733&#xD;
  [16]: http://community.wolfram.com//c/portal/getImageAttachment?filename=67567etfhg54yw.png&amp;amp;userId=11733&#xD;
  [17]: http://community.wolfram.com//c/portal/getImageAttachment?filename=sadf345q4yrthgd.png&amp;amp;userId=11733&#xD;
  [18]: http://community.wolfram.com//c/portal/getImageAttachment?filename=kfkeighsmf534yrthgfds.png&amp;amp;userId=11733&#xD;
  [19]: http://community.wolfram.com//c/portal/getImageAttachment?filename=fdsg65udfsdstrdgjyt7u56uw56rh.png&amp;amp;userId=11733</description>
    <dc:creator>Michael Trott</dc:creator>
    <dc:date>2017-01-15T10:54:26Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/175891">
    <title>t * sin (t) ? Christmas tree - exploring a famous Reddit discussion</title>
    <link>https://community.wolfram.com/groups/-/m/t/175891</link>
    <description>[img]/c/portal/getImageAttachment?filename=tree.gif&amp;amp;userId=11733[/img]&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
I noticed that a [discussion][2] about programming a lighted Christmas Tree from a simple equation&#xD;
&#xD;
    t*Snt[t]&#xD;
&#xD;
became very popular on Reddit. It is connected to a [project][3] a programmer developed. I thought how fast we can make it with Wolfram language ? Here is the result with slight flickering ;-) Note a very special care needs to be paid to the dimming of the lights at a larger distances, and pretty shadowing. &#xD;
&#xD;
- Function f(t, f) is rescaling sampling rate of driving parameter t of parametric curve so points are distributed uniformly. f is basically phase shift.&#xD;
&#xD;
- Parameter PD is just average distance between points&#xD;
&#xD;
This .GIF file has 100 frames. Enjoy! &#xD;
&#xD;
    PD = .5; s[t_, f_] := t^.6 - f;&#xD;
    dt[cl_, ps_, sg_, hf_, dp_, f_] := {PointSize[ps], Hue[cl, 1, .6 + sg .4 Sin[hf s[t, f]]], &#xD;
                                        Point[{-sg s[t, f] Sin[s[t, f]], -sg s[t, f] Cos[s[t, f]], dp + s[t, f]}]};&#xD;
    frames = ParallelTable[&#xD;
       &#xD;
       Graphics3D[Table[{dt[1, .01, -1, 1, 0, f], dt[.45, .01, 1, 1, 0, f], &#xD;
                         dt[1, .005, -1, 4, .2, f], dt[.45, .005, 1, 4, .2, f]}, {t, 0, 200, PD}],&#xD;
        &#xD;
        ViewPoint -&amp;gt; Left, BoxRatios -&amp;gt; {1, 1, 1.3}, ViewVertical -&amp;gt; {0, 0, -1}, &#xD;
        ViewCenter -&amp;gt; {{0.5, 0.5, 0.5}, {0.5, 0.55}}, Boxed -&amp;gt; False, &#xD;
        PlotRange -&amp;gt; {{-20, 20}, {-20, 20}, {0, 20}}, Background -&amp;gt; Black],&#xD;
       &#xD;
       {f, 0, 1, .01}];&#xD;
    &#xD;
    Export[&amp;#034;tree.gif&amp;#034;, frames]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com/c/portal/getImageAttachment?filename=tree.gif&amp;amp;userId=11733&#xD;
  [2]: http://redd.it/1tswai&#xD;
  [3]: https://github.com/anvaka/atree</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2013-12-27T17:33:55Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2100897">
    <title>Anamorphic Reflection Magic on Floor &amp;amp; Ceiling</title>
    <link>https://community.wolfram.com/groups/-/m/t/2100897</link>
    <description>![code geometry Anamorphic Reflection Magic on Floor &amp;amp; Ceiling São Paulo República metro station by Antonio Peticov][1]&#xD;
&#xD;
It looks hard to decipher the text in the image below: that&amp;#039;s because it is a cylindrical anamorphic image. This means you need a cylindrical mirror and a specific viewpoint to interpret the image correctly. I made several [Wolfram Demonstrations][2] about this type of anamorphism in the past. This drew the attention of a Brazilian friend who sent me an article about a remarkable example of cylindrical anamorphosis in the São Paulo República metro station by Antonio Peticov. See the website: [Underground collection: art in São Paulo subway][3]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
In my past demonstrations, the viewer has to **look down** on a deformed image on the **floor** to see the real image reflected. Here however, the viewer has to **look upward** to see the anamorphic image on the **ceiling** reflected as an undeformed image in the cylindrical mirror. This appeared to me like an unexpected extension of my previous contributions and I set myself to work with Mathematica to see if I could reproduce this type of anamorphic art. First the geometry:&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
A point S on the **floor** (left) or **ceiling** (right) will emit a light-ray SQ that reflects as QV to the viewer&amp;#039;s eye at V.  With the eye at V, a person looks **downward** (left) or **upward** (right) and sees a point S on the ceiling as a point I reflected in the cylindrical mirror. The points S, Q, V and I are all in the same plane and n is the normal to the cylinder at Q and the rays sQ and vQ will form equal angles with n. &#xD;
To make it compatible with both floor- and ceiling anamorphosis, I  modified the function used in my demonstrations. The function has to detect if the viewer is looking up- or downward by comparing the z coordinates of the viewer (at V) and the image point (at I).&#xD;
The new function *cylAnamorphMap* performs 3 steps:&#xD;
&#xD;
 1. Find Q, the intersection point of  the view line VI and the cylinder&#xD;
        (assumed to have unit radius)&#xD;
&#xD;
    &#xD;
    &#xD;
&#xD;
 2. Find the symmetrical of the view line VQI to the normal n to&#xD;
        cylinder at Q&#xD;
&#xD;
    &#xD;
    &#xD;
&#xD;
 3. Find the intersection point S of the symmetric view line with the&#xD;
        horizontal plane plane at z=0 (floor level) or z=h (ceiling height).&#xD;
        This point S is the anamorphic map of the image point I.&#xD;
&#xD;
        cylAnamorphMap[{xi_, zi_}, {yv_, zv_}, h_] := &#xD;
         Module[{ptV, ptI, ptQ, ptVv}, ptV = {0, yv, zv}; &#xD;
          ptI = {xi, 1/yv, zi}; &#xD;
          ptQ = {x, y, z} /. &#xD;
            First[NSolve[{Element[{x, y, z}, HalfLine[{ptI, ptV}]] &amp;amp;&amp;amp; &#xD;
                x^2 + y^2 == 1}, {x, y, z}]]; &#xD;
          ptVv = ReflectionTransform[ReplacePart[ptQ, 3 -&amp;gt; 0], ptQ][ptV]; {x, &#xD;
            y, z} /. First[&#xD;
            NSolve[{Element[{x, y, z}, HalfLine[{ptVv, ptQ}]] &amp;amp;&amp;amp; &#xD;
               z == If[zv &amp;gt; zi, 0, h]}, {x, y, z}]]]&#xD;
&#xD;
&#xD;
The following GIF&amp;#039;s show the function in action on a point moving around a circle and around its anamorphic map on the floor (left) or the ceiling (right)&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
To test our function in practice, we first try an experiment with a text message. The following code scales and centers the text and converts it into a FilleCurve object: &#xD;
&#xD;
&#xD;
    loveCeiling[h0_] := &#xD;
      First[First[&#xD;
          ImportString[&#xD;
           ExportString[&#xD;
            Style[&amp;#034;\[Star] What the\n    \[HeartSuit]   World \[Star]\n\&#xD;
    \[Star]needs now&amp;#034;, FontFamily -&amp;gt; &amp;#034;American Typewriter&amp;#034;, &#xD;
             FontWeight -&amp;gt; &amp;#034;SemiBold&amp;#034;, LineSpacing -&amp;gt; {0, 12}], &amp;#034;PDF&amp;#034;], &#xD;
           &amp;#034;TextMode&amp;#034; -&amp;gt; &amp;#034;Outlines&amp;#034;]]] /. {x_?NumericQ, &#xD;
          y_?NumericQ} :&amp;gt; {x, y} .033 /. {x_?NumericQ, &#xD;
         y_?NumericQ} :&amp;gt; {x - .92, y + .9 + h0};&#xD;
    loveFloor[h0_] := &#xD;
      First[First[&#xD;
          ImportString[&#xD;
           ExportString[&#xD;
            Style[&amp;#034;\n    \[HeartSuit]  is Love \[Star]\n    \&#xD;
    \[Star]\[Star] sweet \[Star]\[Star]\n    \[HeartSuit]\[HeartSuit] \&#xD;
    Love \[HeartSuit]\[HeartSuit]&amp;#034;, FontFamily -&amp;gt; &amp;#034;American Typewriter&amp;#034;, &#xD;
             FontWeight -&amp;gt; &amp;#034;SemiBold&amp;#034;, LineSpacing -&amp;gt; {0, 12}], &amp;#034;PDF&amp;#034;], &#xD;
           &amp;#034;TextMode&amp;#034; -&amp;gt; &amp;#034;Outlines&amp;#034;]]] /. {x_?NumericQ, &#xD;
          y_?NumericQ} :&amp;gt; {x, y} .036 /. {x_?NumericQ, &#xD;
         y_?NumericQ} :&amp;gt; {x - 1.21, y - .05 + h0};&#xD;
    love[h0_] := Join[loveFloor[h0], loveCeiling[h0]];&#xD;
    Graphics[love[.5], Axes -&amp;gt; True, AxesOrigin -&amp;gt; {-1., 0.35}, &#xD;
     ImageSize -&amp;gt; Small]&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
We now use the function cylAnamorphMap to create the anamorphic map printout for the **floor** (left) or the **ceiling** (right):&#xD;
&#xD;
    Module[{ptsFloor, ptsCeiling, anaPtsFloor, &#xD;
      anaPtsCeiling}, {ptsFloor, ptsCeiling} = &#xD;
      DeleteCases[love[.05], Thickness[_], \[Infinity]] /. &#xD;
          FilledCurve[_, pts_] :&amp;gt; pts /. {x_?NumericQ, y_} :&amp;gt; # &amp;amp; /@ {{-x,&#xD;
          y}, {x, -(y - 1.) + 1.}};&#xD;
     {anaPtsFloor, anaPtsCeiling} = &#xD;
      ParallelMap[&#xD;
         Most[cylAnamorphMap[#1, {10., 7}, 10]] &amp;amp;, #, {5}] &amp;amp; /@ {ptsFloor,&#xD;
         ptsCeiling};&#xD;
     GraphicsRow[&#xD;
      Graphics[{Circle[], Map[Line, #, {3}]}] &amp;amp; /@ {anaPtsFloor, &#xD;
        anaPtsCeiling}]]&#xD;
&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
We put a cylindrical mirror on top of the two printouts and look at the reflection: this is a photograph of the reflection of the floor image looking downward in the mirror (left) and the reflection of the ceiling image looking upward (right).&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
Next we take a photographic image. Since our function *cylAnamorphMap* operates on 2-dimensional coordinates, we have to convert the image information into an array of coordinates (squares) and their corresponding colors. The following code will divide a photo into an array of colored squares.&#xD;
&#xD;
  &#xD;
&#xD;
    square[center : {x_, &#xD;
        y_}] :=(*gives the coordinates of a unit square centered around \&#xD;
    {x,y}*)With[{s = .5}, {{x - s, y - s}, {x - s, y + s}, {x + s, &#xD;
        y + s}, {x + s, y - s}}]&#xD;
    convert2Squares[image_] :=&#xD;
     Module[{xi, yi, centers, densities},&#xD;
      {xi, yi} = ImageDimensions[image];&#xD;
      centers = ParallelTable[{x, y}, {x, .5, xi}, {y, 0.5, yi}];&#xD;
      densities = &#xD;
       ParallelMap[RGBColor@ImageValue[image, #] &amp;amp;, centers, {2}];&#xD;
      MapThread[{EdgeForm[#2], FaceForm[#2], &#xD;
         Polygon[square[#]]} &amp;amp;, {centers, densities}, 2]]&#xD;
    img = ImageResize[ExampleData[{&amp;#034;TestImage&amp;#034;, &amp;#034;Mandrill&amp;#034;}], 200];&#xD;
    convert2Squares[ImageResize[img, 25]] // Short[#, 2] &amp;amp;&#xD;
    Graphics[%, Axes -&amp;gt; True]&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
This code will scale and center the array of squares to fit within the cylinder.&#xD;
&#xD;
    centerScaleLift[sqrs_List, scl_, dzi_ : 0] :=&#xD;
     &#xD;
     Module[{xi}, xi = First@Dimensions[sqrs];&#xD;
      sqrs /. {x_?NumericQ, y_?NumericQ} :&amp;gt; &#xD;
        2 scl*{x - .5 xi, y *dzi/scl}/xi]&#xD;
&#xD;
Th function *anamorphSquareTiles* will divide the photographic image into an array of squares created by convert2Squares and will convert the vertices of the squares into their anamorphic map using cylAnamorphMap.&#xD;
&#xD;
    anamorphSquareTiles[image_, viewdPoint : {xv_, zv_}, scale_ : .95, &#xD;
      dzi_ : 1] :=&#xD;
     Module[{polySpecs},&#xD;
      polySpecs = centerScaleLift[convert2Squares[image], scale, dzi];&#xD;
      MapAt[Most[cylAnamorphMap[#, {xv, zv}, 10]] &amp;amp;, &#xD;
       polySpecs, {All, All, -1, All, All}]]&#xD;
&#xD;
This is the result of the above function applied to the image img, creating an anamorphic version for reflection from the **floor** (left) and from the **ceiling** (right) &#xD;
&#xD;
    GraphicsRow[{Rotate[&#xD;
        Graphics[{Circle[], &#xD;
          anamorphSquareTiles[&#xD;
           ImageReflect[img, Left -&amp;gt; Right], {100, 70}]}], \[Pi]]&#xD;
       Rotate[&#xD;
        Graphics[{Circle[], &#xD;
          anamorphSquareTiles[ImageReflect@img, {100, 70}]}], \[Pi]]}]&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
These are photos of the above printouts reflected in the cylindrical mirror. Looking down (left) or upward into the mirror (right).&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
Here is how I proceeded to make these photographs: The mirror core is a cylindrical cardboard sugar shaker: diameter  85mm and height  185mm. The reflective material is rolled several times around the cylinder: &amp;#034;heat reflecting window film&amp;#034;. The paper printouts were the Mathematica outputs saved as .pdf files and printed as a 2 page &amp;#034;Poster&amp;#034; with Adobe Acrobat . &#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
In case you can not make your own mirror, you can still explore anamorphism in the virtual world. Here is a simulation of the reflection of both the floor (left) and ceiling (right) anamorphic text. &#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
Imagine a large room with the previous anamorphic images painted on floor and ceiling and the message correctly reflected in the mirror column to be admired by the entering visitor! You can enter this room with the code in the attached notebook &amp;#034;Mathematica floor and ceiling.nb&amp;#034;&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
Hope you enjoyed the magic of anamorphic reflection!&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=_53470713294_e45d93d579_o-2048x1365.jpg&amp;amp;userId=11733&#xD;
  [2]: https://demonstrations.wolfram.com/authors/erik-mahieu &#xD;
  [3]: https://gowhere.com.br/destaque/obras-de-arte-expostas-no-metro-de-sao-paulo-serao-restauradas&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=5343introfloorceiling.png&amp;amp;userId=68637&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=3681geometrycombi.png&amp;amp;userId=68637&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=circlecombifloorceilingsmall.gif&amp;amp;userId=68637&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1427lovetextimage.png&amp;amp;userId=68637&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=lovesweetloveduo.png&amp;amp;userId=68637&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=cylinderloveduo.png&amp;amp;userId=68637&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=7332convert2squares.png&amp;amp;userId=68637&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=mandrillprintoutduo.png&amp;amp;userId=68637&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=2345mandrillrealduo.png&amp;amp;userId=68637&#xD;
  [13]: https://community.wolfram.com//c/portal/getImageAttachment?filename=9745makingof.png&amp;amp;userId=68637&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=floorandceilingprintouts.png&amp;amp;userId=68637&#xD;
  [15]: https://community.wolfram.com//c/portal/getImageAttachment?filename=testlobby.jpg&amp;amp;userId=68637</description>
    <dc:creator>Erik Mahieu</dc:creator>
    <dc:date>2020-10-24T12:27:05Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/86994">
    <title>Showcasing Manipulate[] via .GIF animations</title>
    <link>https://community.wolfram.com/groups/-/m/t/86994</link>
    <description>When we create Manipulate or Animate and would like to showcase them on Wolfram Community site, a cool way is to make an animated GIF file of it. It would be also great if this GIF file could contain motion of controls, so people can see what they do. We can apply Export function to Manipulate with .AVI or .MOV or .FLV formats. This will make a movie that can show all motions of controls and content of Manipulate. But from a movie to a GIF there are just a few steps. This function below does these steps. It basically exports Manipulate to a movie, imports it as ImageList, and then exports it again as a GIF. Because Mac and Windows have different native movie formats we need to auto-detect them. The result of the function is two files  one is a movie and another is an animated GIF saved in default directory. Here is the legend for arguments:&#xD;
[list]&#xD;
[*]man - variable representing Manipulate&#xD;
[*]name - pure name of the file without any extension&#xD;
[*]step - which every frame to pick: 1 - original no compression, 2  every 2nd compress twice, etc. &#xD;
[/list][mcode]ManToGif[man_, name_String, step_Integer] :=&#xD;
 Export[name &amp;lt;&amp;gt; &amp;#034;.gif&amp;#034;,&#xD;
  Import[&#xD;
    Export[name &amp;lt;&amp;gt; Which[$OperatingSystem == &amp;#034;MacOSX&amp;#034;, &amp;#034;.mov&amp;#034;, $OperatingSystem == &amp;#034;Windows&amp;#034;, &amp;#034;.avi&amp;#034;],&#xD;
     man],&#xD;
    &amp;#034;ImageList&amp;#034;][[1 ;; -1 ;; step]]&#xD;
  ][/mcode]Lets see how it works on an example. Here is a Manipulate with 4 controls: 2 sliders and 2 locators. [mcode]man = Manipulate[ContourPlot[&#xD;
    q1/Norm[{x, y} - p[[1]]] + q2/Norm[{x, y} - p[[2]]], {x, -2, &#xD;
     2}, {y, -2, 2}, Contours -&amp;gt; 20, PlotRangePadding -&amp;gt; 0, &#xD;
    Frame -&amp;gt; False, PlotPoints -&amp;gt; 40, ImageSize -&amp;gt; 230, &#xD;
    ColorFunction -&amp;gt; &amp;#034;DarkRainbow&amp;#034;], {{q1, -1}, -3, 3}, {{q2, 2}, -3, &#xD;
    3}, {{p, {{-1, 0}, {1, 0}}}, {-1, -1}, {1, 1}, Locator}, &#xD;
   Deployed -&amp;gt; True, FrameMargins -&amp;gt; 0];[/mcode]Here is the result of the function:[mcode]ManToGif[man, &amp;#034;charge&amp;#034;, 2][/mcode]&#xD;
[img]/c/portal/getImageAttachment?filename=charge.gif&amp;amp;userId=11733[/img]&#xD;
&#xD;
[b]Any suggestions how we can improve this function?&#xD;
[/b][list]&#xD;
[*][b]To make it work faster&#xD;
[/b]&#xD;
[*][b]To make smaller .GIFs&#xD;
[/b]&#xD;
[*][b]Any other way [/b]&#xD;
[/list]&#xD;
P.S. - A few things to note:&#xD;
[list]&#xD;
[*]Control the screen size of GIF by controlling size of Manipulate content.&#xD;
[*]The smaller the screen size, the smaller the byte size.&#xD;
[*]By default Export will generate an animation by running the Manipulate through one Autorun cycle. &#xD;
[*]AutorunSequencing is used when a Manipulate expression is exported using Export to a dynamic format.&#xD;
[*]Use AutorunSequencing to specify how autorun should use the controls provided.&#xD;
[*]When a Manipulate output containing explicit bookmarks is exported to a video animation format using Export, the resulting video will be one cycle through the sequence generated by Animate Bookmarks.&#xD;
[/list]</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2013-08-01T07:08:40Z</dc:date>
  </item>
</rdf:RDF>

