Categories
Blog

The Solution is Salty

I’ve recently had an article, “The Electrostatic Origins of Specific Ion Effects: Quantifying the Hofmeister Series for Anions” accepted in Chemical Science (K. Gregory, E. Wanless, G. B. Webber, V. S. J. Craig and A. Page, Chem. Sci., 2021, DOI: 10.1039/D1SC03568A). I thought this presented an opportunity to challenge myself by writing about the article with less scientific jargon.

This work investigates specific ion effects. You may be surprised at how much you already know about specific ion effects. Have you ever asked someone to pass you the salt? Table salt is also known as sodium chloride and is made up of sodium cations (these are positively charged ions) and chloride anions (these are negatively charged ions). There are potentially millions of other salts and you might know these as minerals or electrolytes. For example, calcium salts are good for your bones, lithium-ions are common in batteries, and magnesium ions in sports drinks can help prevent cramps (these are all positively charged examples). In terms of anions (the negatively charged ions), fluoride is used in toothpaste, iodide for treating hypo/hyperthyroidism and acetate is a key component in vinegar. Each of these have very different applications and are examples of specific ion effects (where the effect depends on the identity of the ion).

The discovery of these specific ion effects is often attributed to Franz Hofmeister and his student, Siegmund Lewith, back in the late 1880s. Despite some forms of specific ion effects already being used previously throughout history, this was perhaps the first systematic study of these effects and inherently found some qualitative (by order) commonality between a few varied experiments (for example, they examined a few systems, including the precipitation of egg white proteins (“room temperature cooking”) and blood serum).

In essence, we’ve known a bit about these systems for over 130 years. The trouble is, they’ve been challenging to model and therefore predict. We’ve seen some benefits of modelling recently to direct Governmental responses to COVID-19. However, no theoretical recipes were available that allow us to say, “I have a salt with cation X and anion Y, which I’m putting in a solution of water containing enzyme Z. This salt will change how fast that enzyme works by U %.”. Until now…

Well, that “Until now…” was partially to be dramatic, but in this scientific paper we begin to address this issue. One of the reasons the recipe doesn’t yet exist is because we also need the right ingredients, and by this I mean the properties of these systems. A few properties have been postulated before (one by us) but they don’t consistently match what is happening in experiments. One of these properties is the polarisability of an ion. Polarisability is analogous to how “balloon-like” or “bowling ball-like” a molecule or atom is. If something has a high polarisability, it can change the shape of its electron density to a larger extent (like a balloon) and if something has a low polarisability, it can’t really change its shape at all (like a bowling ball). This parameter, or ingredient, is reasonably useful until considering non-spherical ions (with more than one atom) such as acetate (the vinegar ion), which you could think of as a little like a balloon dog – it can change its shape a bit and it has an important shape to it. The trouble is, it acts like a bowling ball.

This got me thinking. The fundamental ingredient must have some similarity to the polarisability, but when considering ions like acetate, which have multiple atoms, the atoms that are going to “touch” the other component (such as an enzyme) are the most important to consider. This is where my quantum chemical calculations come into play. I won’t go into too much detail on quantum chemistry here, but I’ll explain some aspects relevant to this work.

Quantum chemistry is done via the Schrödinger equations on a computer (this is one of the big uses of supercomputers, and will be a large application of quantum computers). It allows us to see and calculate things that aren’t yet accessible via experiments. This includes things that are too small, too fast, or too contaminated. In my case, I wanted to: a) calculate the energies of ion interactions and break these down into the fundamental forces (e.g., electrostatics, exchange, induction/polarisation and dispersion, and variations of these) and; b) parameterise each atom separately, within molecules.

So, in part a) I found that electrostatics (the force that works when you rub a balloon against your jumper and then it sticks to the roof) seemed to be the key aspect that determined many ion interactions. I used this in part b) which centred around electrostatics and Coulomb’s Law. This is essentially the law that opposites attract (positive likes negative, negative likes positive), and that the closer the opposites are the greater the attraction. In equation form, E=k(q1q2/R), where E is the energy of interaction, k is a “constant”, q1 and q2 are the charges of points 1 and 2 respectively, and R is the separation distance.

I used a technique called DDEC6 (developed by T. Manz and N. Limas et al.10.1039/C6RA04656H) that allowed the values of q (the charges) to be calculated at every atom. For “touching” atoms, R can also be approximated by r1 + r2, the radius of the atoms 1 and 2, which can similarly be calculated. For negatively charged anions, the (radial) charge density (which I’ve called “sho”, ϸ, which can be a lot of fun (for me) for visual puns), q1/r1 is closely proportional to the more complete electrostatic energy as described by Coulomb’s Law, since (in a given system), q2 is a multiplicative constant and r2 is constant and comparatively small. This means we have a parameter that correlates with the electrostatic energy of these anions.

Of course, up until here, it’s theoretical. So the next step was to apply this parameter to various experiments to see if it correlated. This is the exciting part. It did. Time to ϸ off.

Now for a few examples.

Electrolyte properties: These are important as a baseline for more complex models, but are very relevant to industrial processes and battery functions.

Viruses: For the viral activity of the herpes simplex virus 1 (HSV-1) protease, human rhinovirus-14 and human immunodeficiency virus (HIV) protease, there was a strong relationship. Now hopefully I don’t butcher the biological interpretation of activity here, but this implies that, in the presence of some ions (or salts/minerals), you can speed up or slow down the rate these proteases work and therefore the resultant symptoms of that virus. I’ll put in a disclaimer here that this data is obtained in experimental conditions and that these ions may work in this manner generally in the body, so there will be various other enzymes and proteins affected simultaneously and therefore there is potentional for various side effects. I’ll probably have to leave this with the biochemists and medical researchers to most beneficially use this information.

Stimuli-responsive systems: There are some large molecules that will change behaviour under certain conditions, such as light, temperature, or acidity. Light-responsive behaviour is already being incorporated into dual-functioning glasses/sunglasses. In the case of temperature-responsive molecules, salts can alter the temperature at which a change occurs, and this correlates with ϸ.

We also showed that when changing the liquid in which these effects take place, for example from water to alcohol (ethanol), certain properties of the liquid could account for this. A recent paper (10.1039/C9CP06800G) showed specific ion effects in the enzyme responsible for metabolising alcohol (and therefore a hangover). This might contribute to why sports drinks can help a hangover (they also help replenish sodium after depletion due to alcohol dehydrating effects).

When it comes to the cations (the positive component of salts) in otherwise uncontaminated water, the same electrostatic trends are observed. However, we also stipulated that in non-pure water systems (i.e., mixed with alcohol) other intermolecular forces come into play. For example, when a “tug-o-war” is occurring between the water and the alcohol molecules where the cation is the “middle of the rope”, the electrostatics (analogous to the anchor in the tug-o-war) have roughly equal strength on both the water and the alcohol teams. This means the differentiating factor can be one of the other team members, in this case, dispersion (similarities to gravity, often two large molecules/ions will have a stronger dispersion attraction than two small molecules/ions).

Conclusion

Understanding the origins of the specific ion effects that underpin our day to day lives allows for more control of ourselves and the surrounding environment. It’s like knowing the rules for a game. To truly master it, you need to know the rules, then be able to use them in conjunction to your advantage. It’s also a bit like having a road map that can help you reach your destination quicker because you know which routes are the shortest and straightest. Having the rulebook, or roadmap, of specific ion effects will expedite endeavours in multiple industries. Over 50% of all pharmaceutical drugs exist as salts, implying many initial drug discovery programs would benefit, accelerating the search for life-saving drugs in this trillion-dollar industry. Nutritional epidemiology studies the role of diet on health and disease. It is heavily reliant on statistics of the population, but the specific ion effect rulebook could help bring understanding to a personalised level. Additionally, with the emergence of smart solutions and surfaces, the ability to tune these via salt will broaden the scope of their applicability, whilst also informing us of similar mechanistic processes happening in our bodies. With the emergence of electric vehicles (EVs), the battery race is gaining speed (pun intended). These EVs are reliant on the battery (and/or capacitors, supercapacitors and fuel cell) technology to go the fastest, farthest and be the smallest, whilst charging quickly and repeatedly. Inherently, these are reliant on specific ion effects for optimising how much flowing charge you can pack in a small space. So they’re important for “bettery” development if you will. Finally, EVs are one of the combatants of climate change. Another combatant to global warming is the glaciers at the ice caps that reflect a lot of the suns radiation. And guess what… Their stability is also dependent on specific ion effects. As is the stability of soil that might determine its disposition to erosion.

So yes, specific ion effects affect almost all aspects of our lives, and while this study didn’t quite finish the specific ion effects rulebook, it did find a very important rule – The Electrostatic Origins of Specific Ion Effects.

— Kasimir Gregory

Research funded by an Australian Government Research Training Program (RTP) Scholarship and Australian Research Council funding (ARC DP190100788, LE170100032 (INTERSECT)).

Categories
Podcast Episodes

E5 – Dr Edwin Johnson | Smart Surfaces of the Future

I am joined (in late Dec 2020) by Dr Edwin Johnson, a recent PhD graduate from the University of Newcastle and current Postdoctoral researcher at the University of Sheffield. We discuss his PhD titled Competition in Polymer Brushes – Understanding specific ion effects in complex environments.

Ed’s Twitter @Ed_Johnson_Au

Ed’s Google Scholar 

Papers:

Temperature dependent specific ion effects in mixed salt environments on a thermoresponsive poly(oligoethylene glycol methacrylate) brushhttps://doi.org/10.1039/C8CP06644B

Interplay of Composition, pH, and Temperature on the Conformation of Multi-stimulus-responsive Copolymer Brushes: Comparison of Experiment and Theoryhttps://doi.org/10.1021/acs.langmuir.0c00424

Enrichment of Charged Monomers Explains Non-monotonic Polymer Volume Fraction Profiles of Multi-stimulus Responsive Copolymer Brusheshttps://pubs.acs.org/doi/abs/10.1021/acs.langmuir.0c01502

The direction of influence of specific ion effects on a pH and temperature responsive copolymer brush is dependent on polymer chargehttps://doi.org/10.1016/j.polymer.2020.123287

Timestamps:

00:00:57 – Intro

00:01:40 – Decision to do a PhD

00:03:33 – Changes through the PhD

00:05:19 – Submitting a PhD during COVID

00:08:20 – Break down of Ed’s Thesis. Bridging chemistry and biology with polymers. What is a polymer brush?

00:15:00 – Throwing out logistics for potential applications. Spider-man gloves. Sound responsive polymers for deafness?

00:20:21 – Projects of the thesis.

00:21:00 – Specific ion effects.

00:23:20 – Mixtures of salts; mixtures of polymers

00:25:26 – Multi-stimulus responsive polymers

00:26:05 – Neutron Reflectometry

00:26:47 – Competitive specific ion effects

00:29:14 – ANSTO – researching with neutrons. Nuclear research.

00:34:14 – Neutron Reflectometry vs Ellipsometry – how they work

00:37:45 – Music – the importance of other passions during a PhD.

00:39:21 – Live Melodica music

00:40:21 – Exercise (Running and Street Orienteering)

00:41:42 – Travelling during the PhD

00:44:16 – Moving to the UK. Postdoctoral position the University of Sheffield. Concern about travelling.

00:55:00 – Differences in research with the Netherlands

00:57:26 – Anything you could research.

01:05:44 – Working hard, or smart?

01:10:38 – Wrapping up

Bonus Content

01:12:55 – Food science – so complicated at the chemical level.

01:18:26 – Ethics discussion on using cadavers on bypass for research?

01:25:00 – Hype science and journalism.

01:27:42 – How does smell work?

01:29:26 – Mouth feel science.

01:32:12 – Aussie chat.

01:34:44 – Call out for Aussie things for Ed to take to the UK?

Categories
Podcast Episodes

E4B – Anthony Saltis – Competence and Culture

This is part 2 of the episode co-hosted by Kas Gregory and Supakarn Nakavisut, interviewing Anthony Saltis. We discuss time travel, Capitalism, mobile phones in society, the Dunning-Kruger Effect, education, children in parliament and happiness vs productivity.

00:42 – Time Travel Philosophy

06:10 – Antibiotic resistance

09:05 – Work Culture and pandemics – Capitalism

13:20 – Unified moral preference of society

16:25 – Mobile phones in society – dopamine machines

25:15 – Dunning-Kruger Effect – The four stages of competence

34:00 – Anthropology – risk-taking behaviours

38:15 – Experienced teachers

43:45 – Thailand Education Reform

46:40 – Finnish Education system

49:19 – Children in Parliament?

53:35 – American Election (talked about in early September)

56:48 – Happiness vs Productivity

The YouTube version will be delayed, as I haven’t yet made the SMArt, and I am working on a new idea.

Categories
Podcast Episodes

E4A – Anthony Saltis | Philosophy and Medicine

This episode is co-hosted by Kas Gregory and Supakarn Nakavisut. We interview Anthony Saltis about Philosophy and Medicine, touching on Medical and medicinal anthropology, medical ethics, identity, and the construct of time. Sometimes we got a bit side-tracked, but hopefully you enjoy, nonetheless. We recorded an impromptu interview, and I thought it was interesting enough to share.

Anthony is currently studying Medicine at the University of Sydney and also has received a Bachelor of Arts (Philosophy) from the University of Newcastle. Supakarn is currently teaching in Myanmar after receiving his Bachelor of Music (Honours) from the University of Plymouth. Kas is studying his PhD at the University of Newcastle, after completing a combined Bachelor of Mathematics (Applied Mathematics) and Bachelor of Science (Chemistry – Honours – University Medal).

Timestamps:
03:08 – Medicinal and Medical Anthropology
07:41 – World Health Organisations amendment to a position statement on health.
12:59 – Validity and Truth concepts in medical research
15:03 – “Medicines the Law”
17:44 – Medical Ethics – COVID-19
21:46 – Four Pillars of Medical Ethics
23:09 – Karma 24:35 – Consequentialism
29:59 – “What is Life?”
31:11 – Parfit Brain Transplant and Personal Identity.
34:04 – Schopenhauer type philosophy then Determinism.
37:20 – Interruption of Anthony to discuss time.
39:54 – Sensory Deprivation Tank Testimonial from Supa
43:22 – Inspirations to study Medicine

The YouTube version will be delayed, as I haven’t yet made the SMArt, and I am working on a new idea.

Categories
Podcast Episodes

Coast Run Goes Global Announcement

Register: unelife.com.au/epc-coast-run

Donate: https://epc-coastrun.raisely.com/  

Transcript: Hello, and welcome to Anion The Future. This is a quick announcement for the Coast Run Goes Global Event. The event is raising money for the Children’s Medical Research Institute (CMRI) and consists of trying to log as many running kilometres this week as you can. Similar to step challenges like Steptember. It is currently running this week and is open to absolutely anyone. To register, I’ll put a link in the description, but you can follow the instructions at unelife.com.au/epc-coast-run or google “Coast Run Goes Global” – it’s the top link for me but maybe that isn’t the case for everyone. The event has already started, and I only just thought of making this announcement to spread the word, but I believe anything you’ve done already this week will count if it has uploaded to Strava and it goes through until this Sunday 20th September 2020. I’ve currently clocked up 20km – so the challenge is there for you to beat me!

Now a bit of background on the event. My dad started the Coast Run 40 years ago while he was on college. He somehow manage to convince a group of college students to do a 200km relay run from Earle Page College in Armidale, to Coffs Harbour, and raise money for a good cause while doing it. The power of a novel idea. Over the course of the 40 years it has raised over $800,000 for children’s medical research, whilst simultaneously inspiring over 1000 students to live healthier lives and provide an avenue for students to gain real world skills, as the event has really evolved into a something much bigger, incorporating things like fashion parades and local discount cards that requires a team to put it all together.

For me personally it was a fun event to be involved in each year. I was the little primary school kid that would attempt to outrun the college students. It gave me exposure to a large variety of people following a broad set of career paths from a young age, and seeing a little what an academic life might look like. Attempting to expand my network right from the get go. It was definitely great to see an event like that continue each year where so many people were running further then they ever had in their life. It was an event for pushing boundaries. The first time I ran a half marathon distance was on Deer-Vale, part way through the run. It probably plays a bit of a role in my origins helping to spur my running through school and seeing that sometimes, to achieve something that seems unachievable there can be a great power in just starting it, and then it’s amazing how momentum, supportive friends and the will to finish can take over to get you across the line.

Anyway, this year due to COVID-19 it can’t run as normal, so has gone ‘global’. I hope many of you decide to join up – it’d be great if collectively we could reach 1000km, although even better would be 8000km (the distance of 40 years worth of Coast Runs), however we’d probably need a strong surge in participants at the moment. There are currently 39 runners.

If you’d like to find out more, I interview Brent about it in episode E2B. It is about 55minutes into the episode. If you aren’t much of a runner but still want to donate, I’ll put a link to that in the description as well epc-coastrun.raisely.com

Hope to see you on the Strava Coast Run Goes Global “Club”. Game on!

Categories
SMArt Codes

E3 – “Puppy”

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time
import random


print("starting")
start = time.time()

x_data = []
y_data = []
x2_data = []
y2_data = []
x3_data = []
y3_data = []
x4_data = []
y4_data = []
x5_data = []
y5_data = []
x6_data = []
y6_data = []
x7_data = []
y7_data = []
x8_data = []
y8_data = []
x9_data = []
y9_data = []
x10_data = []
y10_data = []
x11_data = []
y11_data = []

fig, ax = plt.subplots()
#ax.set_xlim(-10000, 10000)
#ax.set_ylim(-10000, 10000)
line, = ax.plot(0,0)
line2, = ax.plot(0,0)
line3, = ax.plot(0,0)
line4, = ax.plot(0,0)
line5, = ax.plot(0,0)
line6, = ax.plot(0,0)
line7, = ax.plot(0,0)
line8, = ax.plot(0,0)
line9, = ax.plot(0,0)
line10, = ax.plot(0,0)
line11, = ax.plot(0,0)
r=1.2
r2=1.5
r3=1.5

count=1
count2=0
count3=0
def animation_frame(i):
    print(i)
    print(np.sin(i))
    x=round(i/30)+0.02
    x2=round(x/30)+0.1
    y_data.append(abs((x+50)/120*np.sin(i*np.pi/15)))
    x_data.append(-(x+50)/300*(np.sin(i*np.pi/15/2)*np.sin(i*np.pi/15)+3*np.sin(i*np.pi/15/2)))
    x2_data.append(x/100*np.sin(i*np.pi/30))
    y2_data.append(-0.5+x/100*np.cos(i*np.pi/30))
    x5_data.append(0.35+x/1200*np.sin(i*np.pi/30))
    y5_data.append(x/1200*np.cos(i*np.pi/30))
    x6_data.append(-0.35-x/1200*np.sin(i*np.pi/30))
    y6_data.append(-x/1200*np.cos(i*np.pi/30))
    y7_data.append(-1.5+abs(x/250*np.sin(i*np.pi/15)))
    x7_data.append(0.8-x/1000*(np.sin(i*np.pi/15/2)*np.sin(i*np.pi/15)+3*np.sin(i*np.pi/30/2)))
    y8_data.append(-1.5+abs(x/250*np.sin(i*np.pi/15)))
    x8_data.append(-0.8+x/1000*(np.sin(i*np.pi/15/2)*np.sin(i*np.pi/15)+3*np.sin(i*np.pi/30/2)))
    #y4_data.append(x/60*np.cos(i*np.pi/30))
    #x4_data.append(x/200*(np.cos(i*np.pi/30/2)*np.cos(i*np.pi/30)))
    #x3_data.append(x/220*np.sin(i*np.pi/30))
    #y3_data.append(-0.5-abs(x/70*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    #x4_data.append(x/125*np.sin(i*np.pi/30))
    #y4_data.append(-0.3-abs(x/105*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    x9_data.append(x/500*np.sin(i*np.pi/30))
    y9_data.append(-1+abs(x/800*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    ##LIGHTNINGBOLT
    #x10_data.append(x/100-x2)
    #y10_data.append(x/100+
    ##WHISKERS
    #x10_data.append(0.05+(x2/200*30*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    #y10_data.append(-0.7+x2/1000*30*np.sin(i*np.pi/30))
    #x11_data.append(-0.05-(x2/200*30*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    #y11_data.append(-0.7+x2/1000*30*np.sin(i*np.pi/30))
    #x4_data.append((x/1000*np.cos(i))+2)
    #y4_data.append((x/1000*np.sin(i))-1.5)
    ##Loveheart nose
    y10_data.append(-0.5+x/800*np.sin(i*np.pi/30))
    x10_data.append(x/1500*(np.sin(i*np.pi/30/2)*np.sin(i*np.pi/30)+np.sin(i*np.pi/60)))
    line.set_xdata(x2_data)
    line.set_ydata(y2_data)
    line2.set_xdata(x_data)
    line2.set_ydata(y_data)
    line3.set_xdata(x3_data)
    line3.set_ydata(y3_data)
    line4.set_xdata(x4_data)
    line4.set_ydata(y4_data)
    line5.set_xdata(x5_data)
    line5.set_ydata(y5_data)
    line6.set_xdata(x6_data)
    line6.set_ydata(y6_data)
    line7.set_xdata(x7_data)
    line7.set_ydata(y7_data)
    line8.set_xdata(x8_data)
    line8.set_ydata(y8_data)
    line9.set_xdata(x9_data)
    line9.set_ydata(y9_data)
    line10.set_xdata(x10_data)
    line10.set_ydata(y10_data)
    line11.set_xdata(x11_data)
    line11.set_ydata(y11_data)
    ax.set_xlim(-2,2)
    ax.set_ylim(-1.5,1.5)
    line2.set_linewidth(3)
    line10.set_linewidth(0.5)
    line10.set_linewidth(0.5)

    line2.set_color('saddlebrown')
    line.set_color('chocolate')
    line3.set_color('chocolate')
    line4.set_color('chocolate')
    line5.set_color('black')
    line6.set_color('black')
    line7.set_color('saddlebrown')
    line8.set_color('saddlebrown')
    line9.set_color('black')
    line10.set_color('black')
    line11.set_color('black')
    return line, line3, line4, line2, line5, line6, line7, line8, line9, line10, line11

z_data = []
#counter=2000*np.pi
counter=0
#counter=1000*np.pi
for z in range(1, round(5000*np.pi)):
    counter=counter+1
    z_data.append(counter)


animation = FuncAnimation(fig, func=animation_frame, frames=z_data, interval=60, blit=True)


animation.save('puppy2.mp4', dpi=500, bitrate=-1, codec="libx264", extra_args=['-pix_fmt','yuv420p'])
#plt.show()
end = time.time()
print(end - start)
#print("done", "frame=",animation.frame_seq)
Categories
Podcast Episodes

E3 – Dr Sarah Pearson | Innovation | Particle Physics, Cancer Diagnosis & Cadbury

I am joined by Dr. Sarah Pearson, the current Deputy Director-General for Innovation at Advance Queensland. We discuss Sarah’s career that started in Particle Physics but has since included, cancer research, Cadbury confectionary, and the Department of Foreign Affairs and Trade (DFAT), with a huge focus on collaborative innovation.
Sarah’s LinkedIn https://www.linkedin.com/in/sarahpearsoninnovation
Sarah’s Twitter https://twitter.com/InnovationSarah
Advance Queensland Website https://advance.qld.gov.au/

Timestamps:

00:01:14 – Sarah’s current work at Advance Queensland
00:02:14 – Innovation out of COVID-19
00:03:40 – The ups and downs of Sarah’s Oxford PhD
00:09:00 – Careers Highlights
00:11:17 – Moving to Australia
00:11:47 – Working at McKinsey
00:12:52 – Becoming a parent – refocusing priorities
00:14:40 – Moving to Armidale – moving back into Physics and restructuring
00:16:36 – Breast Cancer research
00:18:23 – Outreach programs to get young people, especially women into STEM
00:19:18 – Open Innovation at Cadbury
00:22:33 – Back to Australia – struggled for a bit
00:23:08 – CEO at ANU Enterprise + Night jobs like the Scaling Frontier Innovation Program
00:26:54 – Canberra Innovation Network – company to build an ecosystem. Mass collaboration.
00:28:33 – Brief UoN stint
00:28:37 – Chief Innovation Officer at DFAT
00:30:29 – Head of Innovation Queensland
00:30:44 – Work-life balance
00:32:11 – Important Networks and influential people
00:36:10 – Childhood impacts on career. Moving around a lot.
00:38:37 – Merging innovation with encouraging women in STEM
00:43:14 – How to build inclusive new economies?
00:44:07 – How will innovation change the future?

Intro Music by Supakarn Nakavisuit (https://bit.ly/33ZtIh8)
Outro Music by Kasimir Gregory
SMArt – “Puppy” by Kasimir Gregory

Categories
SMArt Codes

E2C – Butterflying

I’ve decided to leave some of the messiness in – turns out this one is reasonably clean – but some of the upcoming codes are a little messier.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time
import random


print("starting")
start = time.time()

x_data = []
y_data = []
x2_data = []
y2_data = []
x3_data = []
y3_data = []
x4_data = []
y4_data = []

fig, ax = plt.subplots()
#ax.set_xlim(-10000, 10000)
#ax.set_ylim(-10000, 10000)
line, = ax.plot(0,0)
line2, = ax.plot(0,0)
line3, = ax.plot(0,0)
line4, = ax.plot(0,0)
r=1.2
r2=1.5
r3=1.5

count=1
count2=0
count3=0
def animation_frame(i):
    print(i)
    print(np.sin(i))
    x=round(i/30)+0.1
    y4_data.append(x/120*np.sin(i*np.pi/30))
    x4_data.append(x/100*(np.sin(i*np.pi/30/2)*np.sin(i*np.pi/30)))
    x2_data.append(x/100*np.sin(i*np.pi/30))
    y2_data.append(x/100*(np.sin(i*np.pi/30/2)*np.sin(i*np.pi/30))+0.02)
    y_data.append(x/200*np.cos(i*np.pi/30))
    x_data.append(x/300*(np.cos(i*np.pi/30/2)*np.cos(i*np.pi/30)))
    x3_data.append(x/1000*np.sin(i*np.pi/30))
    y3_data.append(abs(x/150*(np.sin(i*np.pi/30)*np.sin(i*np.pi/30))))
    #x4_data.append((x/1000*np.cos(i))+2)
    #y4_data.append((x/1000*np.sin(i))-1.5)
    line.set_xdata(x_data)
    line.set_ydata(y_data)
    line2.set_xdata(x2_data)
    line2.set_ydata(y2_data)
    line3.set_xdata(x3_data)
    line3.set_ydata(y3_data)
    line4.set_xdata(x4_data)
    line4.set_ydata(y4_data)
    ax.set_xlim(-0.4,0.4)
    ax.set_ylim(-0.4,0.4)
    line.set_linewidth(1)
    line2.set_linewidth(5)
    line3.set_linewidth(0.5)
    line4.set_linewidth(3)
    line4.set_color('orange')
    line2.set_color('purple')
    line3.set_color('black')
    line.set_color('black')
    return line4,  line, line2, line3

z_data = []
#counter=2000*np.pi
#counter=-300*np.pi
counter=0
for z in range(1, 10000):
    if counter < 10000:
        counter=counter+0.1
    #else:
    #    counter=counter - 300*np.pi
    z_data.append(counter)


animation = FuncAnimation(fig, func=animation_frame, frames=z_data, interval=60, blit=True)


animation.save('Butterfly2.mp4', dpi=500, bitrate=-1, codec="libx264", extra_args=['-pix_fmt','yuv420p'])
#plt.show()
end = time.time()
print(end - start)
#print("done", "frame=",animation.frame_seq)
Categories
Podcast Episodes

E2C – Brent Gregory | Future Universities, Networks & Creativity

Brent and I discuss the future of Universities, the importance of soft networks and clusters of competence, creativity and the 6 thinking hats. New music in the introduction by Supakarn Nakavisut (@BARE MUSIC – https://bit.ly/33ZtIh8)

00:00:43 – Intro (Music by Supakarn Nakavisut)
00:01:25 – Specialising/decentralising Universities?
00:04:45 – Future of Universities
00:08:10 – Purpose built cities/communities
00:13:08 – Implementing the change despite pushback? Improving quality of life.
00:19:15 – Importance of teams and networks
00:23:58 – What recruiters say about networking skills
00:27:50 – Work hrs vs pay research (correlations)
00:32:01 – The 7 Habits of Highly Effective People
00:33:20 – Six Thinking Hats
00:37:35 – Creativity and Innovation – “The literature of life is something we shouldn’t devalue”
00:45:22 – Accelerated Learning
00:48:31 – Tools and Drills for creativity?
00:50:52 – Clusters of Competence
00:53:43 – The impact of the coffee shop
00:54:25 – The Manhattan Project (20 Nobel Laureates)
00:55:14 – Gambling with Maths cluster; Silicon Valley; Musical crossovers
01:00:02 – What is the causal factor? What aren’t we measuring?
01:02:00 – Accounting is about making things visible
01:05:40 – Find Brent at ResearchGate https://www.researchgate.net/profile/Brent_Gregory

Intro Music by Supakarn Nakavisut (https://kaensupakarn.wixsite.com/bare-music/music)
Outro music by Kasimir Gregory

Categories
SMArt Codes

E2B – Time To Unwind

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time

print("starting")
start = time.time()

x_data = []
y_data = []
x2_data = []
y2_data = []
x3_data = []
y3_data = []

fig, ax = plt.subplots()
line, = ax.plot(0,0)
line2, = ax.plot(0,0)
line3, = ax.plot(0,0)
r=1
r2=1.2
r3=1.5

def animation_frame(i):
    print(i)
    x=round(i+1)
    r2=r*(x+1)
    if (((x+1) % 3 == 0)):
        x2_data.append(x*r2*np.cos(i))
        y2_data.append(x*r2*np.sin(i))
    elif ((x % 3 == 0)):
        x_data.append((x*r2*np.cos(i)))
        y_data.append((x*r2*np.sin(i)))
    else:
        x3_data.append((x*r2*np.cos(i)))
        y3_data.append((x*r2*np.sin(i)))
    line.set_xdata(x_data)
    line.set_ydata(y_data)
    line2.set_xdata(x2_data)
    line2.set_ydata(y2_data)
    line3.set_xdata(x3_data)
    line3.set_ydata(y3_data)
    line.set_linewidth(1)
    line2.set_linewidth(0.3)
    line3.set_linewidth(0.3)
    ax.set_xlim(-(i+1)*(i+1),(i+1)*(i+1))
    ax.set_ylim(-(i+1)*(i+1),(i+1)*(i+1))
    line.set_color('orange')
    line2.set_color('purple')
    line3.set_color('green')
    return line, line2, line3

z_data = []
count=0
for z in range(1, 4000):
    count=(count+z)/3
    z_data.append(count)


animation = FuncAnimation(fig, func=animation_frame, frames=z_data, interval=10, blit=True)

animation.save('TimeToUnwind.mp4', dpi=500, bitrate=-1, codec="libx264", extra_args=['-pix_fmt','yuv420p'])
#plt.show()
end = time.time()
print(end - start)