Minsky is SourceForge’s Project of the Month

Flattr this!

Source­Forge is one of the main devel­op­ment and repos­i­to­ry sites for Open Source soft­ware, and late last year their com­mu­ni­ty vot­ed to make Min­sky its Project of the Month for Jan­u­ary 2014.

SourceForgeCommunityChoice

We (myself and Dr Rus­sell Stan­dish, who is the chief pro­gram­mer for Min­sky) were delight­ed of course: it’s a pub­lic affir­ma­tion that the project is use­ful and respect­ed by a very crit­i­cal audi­ence: oth­er devel­op­ers of Open Source soft­ware. Here is the inter­view Source­Forge con­duct­ed with us, which is pub­lished on its blog.

SourceForgeBlog

Source­Forge: Tell us about the Min­sky project please…

Min­sky Team: Bizarre as it may seem, main­tream eco­nom­ic the­o­ry ignores banks, debt and mon­ey com­plete­ly, and imag­ines that the dynam­ic, inno­v­a­tive and cri­sis-prone social sys­tem we call cap­i­tal­ism can be mod­elled as if it is almost always in equi­lib­ri­um. It’s lit­tle won­der there­fore that most econ­o­mists didn’t see the finan­cial cri­sis com­ing back in 2007.

The design­er of Min­sky, Dr. Steve Keen, did antic­i­pate the cri­sis, based on a dynam­ic mon­e­tary mod­el of a pos­si­ble finan­cial cri­sis that he devel­oped back in 1992.

 The mod­el put into math­e­mat­i­cal form the eco­nom­ic approach of the rebel Amer­i­can econ­o­mist Hyman Min­sky, and the pro­gram Min­sky was named in his hon­or.  Min­sky was designed to make a dif­fer­ent approach to eco­nom­ic mod­el­ing pos­si­ble: one in which banks, debt and mon­ey are indis­pen­si­ble, and in which the econ­o­my is always chang­ing. To do that, we built on the estab­lished tra­di­tion of sys­tem dynam­ics embod­ied in pro­grams like Xcos, which use flow­charts to build dynam­ic mod­els of real-world process­es.

The flow­chart par­a­digm is fine for phys­i­cal flows but prob­lem­at­ic for finan­cial flows, because the same transaction—say buy­ing goods from a store when its deposit account is in a dif­fer­ent bank—has to be record­ed in at least four dif­fer­ent places: once as a deduc­tion from your account, once as an addi­tion to the store’s, and twice more as a trans­fer of reserves from your bank to the seller’s bank. 

Because of the mul­ti­ple entries need­ed to prop­er­ly rep­re­sent finan­cial flows, mod­el­ing using the flow­chart par­a­digm rapid­ly gen­er­ates a “spaghet­ti code” of inter­sect­ing wires that is effec­tive­ly unin­tel­li­gi­ble.  Min­sky solves this prob­lem by adding a sec­ond method to gen­er­ate dynam­ic equa­tions for finan­cial flows. This is a spread­sheet-like dou­ble entry book­keep­ing sys­tem, which we call them “God­ley Tables” in hon­or of a pio­neer in mon­e­tary eco­nom­ics Wynne God­ley.

SF: What made you start this?

Min­sky Team: The God­ley table fea­ture is new, so either need­ed to be imple­ment­ed with­in an exist­ing open source dynam­ic sys­tems mod­el­ling tool, or we had to cre­ate the mod­el­ling tool de novo.  The main OSS sys­tem dynam­ics pro­gram Xcos is based on the com­mer­cial pro­gram Simulink, and even as expe­ri­enced devel­op­ers we found the user inter­face dif­fi­cult (we became aware of anoth­er Open Source program—Insight Maker—after start­ing the Min­sky project, and we’re explor­ing the pos­si­bil­i­ty of shar­ing code and approach­es here).

So we decid­ed to imple­ment Min­sky from scratch in C++ and Tcl/Tk. By doing so we’ve been able to imple­ment “best of breed” ideas from the spec­trum of sys­tem dynam­ics tools, and intro­duce some of our own ideas too.  Sim­i­lar to the com­mer­cial pro­gram Vis­sim, Min­sky uses vari­able names as well as wires to pass val­ues, and in addi­tion we enable easy con­ver­sion between con­stants, para­me­ters, vari­ables and inte­gral vari­ables, so that a mod­el can start sim­ple and be made more com­plex and accu­rate over time.  We also can export a model’s equa­tions to LaTeX, which is essen­tial for aca­d­e­m­ic pub­lish­ing. To our knowl­edge, no oth­er sys­tem dynam­ics pro­gram does this.

SFHas your orig­i­nal vision been achieved?

Min­sky Team: Yes, although the orig­i­nal vision is only a frac­tion of what we hope to imple­ment with future devel­op­ment. The orig­i­nal objec­tive was to make it pos­si­ble to devel­op dynam­ic mon­e­tary macro­eco­nom­ic mod­els with both phys­i­cal and finan­cial flows. That has now been achieved, though some features—for exam­ple cre­at­ing groups and local vari­ables, graph­ics and data display—are still at an ear­ly stage.  Over­all how­ev­er we think it’s the eas­i­est sys­tem dynam­ics pro­gram to use, and the only one that makes it fea­si­ble to mod­el finan­cial as well as phys­i­cal flows.

SFWho can ben­e­fit the most from Min­sky?

Min­sky Team: Any­one who has an inter­est in dynam­i­cal sys­tems modelling—from chaos the­o­ry, to eco­nom­ics and bio­log­i­cal modelling—can use and ben­e­fit from Min­sky. We’ve eas­i­ly imple­ment­ed clas­sic chaot­ic mod­els in Minsky—the Lorenz attrac­tor, Duff­ing Chaos etc.—and you can run them in real time, and change para­me­ters as they run.

It would suit math­e­mat­ics lec­tur­ers and stu­dents too, as a means to visu­al­ize dynam­ic mod­els and math­e­mat­i­cal func­tions in gen­er­al.  Those who can ben­e­fit the most are peo­ple who want to under­stand the finan­cial sys­tem and mon­e­tary flows. We hope in time that it will be adopt­ed by uni­ver­si­ties as a teach­ing tool, and by Cen­tral Banks and Trea­suries as a means to build real­is­tic mod­els of the econ­o­my in which finance and bank­ing play inte­gral roles—in con­trast to exist­ing “DSGE” mod­els, 99% of which ignore bank­ing com­plete­ly.

SFWhat’s the best way to get the most out of using Min­sky?

Min­sky Team: Take a look at the exam­ples, as well as the many videos Steve Keen has made on con­struct­ing models—which are avail­able on his YouTube Chan­nel (http://www.youtube.com/ProfSteveKeen).

SFWhat was the first big thing that hap­pened for your project?

Min­sky Team: The project would not have been pos­si­ble with­out an orig­i­nal grant of $128,000 from INET (the Insti­tute for New Eco­nom­ic Think­ing). This allowed us to cre­ate the first cou­ple of releas­es of Min­sky (named “Aris­to­tle” and “Aquinas” after ear­ly thinkers on top­ics eco­nom­ic and philo­soph­i­cal) which result­ed in a usable, but still pret­ty basic, pro­gram.  Then a suc­cess­ful Kick­starter cam­paign in Feb­ru­ary this year allowed the next two releas­es Pet­ty and Mun, which improved the usabil­i­ty of the soft­ware, and allowed more com­plex sys­tems to be sim­u­lat­ed.

SF: What helped make that hap­pen?

Min­sky Team: Steve Keen, the chief design­er of Min­sky, was a Pro­fes­sor of Eco­nom­ics who is also a well-known crit­ic of con­ven­tion­al eco­nom­ic the­o­ry, with a pop­u­lar book Debunk­ing Eco­nom­ics and an influ­en­tial blog Steve Keen’s Debt­watch. INET respect­ed his work and were hap­py to give the ini­tial grant, while his pub­lic pro­file led to a sub­stan­tial sum being raised from the pub­lic via Kick­starter.

SF: What was the net result for that event?

Min­sky Team: The net result is that Min­sky now ful­fils its basic promise—to be able to build dynam­ic mod­els in gen­er­al, and in par­tic­u­lar to build mon­e­tary mod­els of the econ­o­my. There are still some rough edges at this lev­el since less than 3000 hours of pro­gram­ming has gone into its devel­op­ment so far, but we’re con­fi­dent that it is rel­a­tive­ly bug-free and will work as intend­ed right now—though we hope to add much more pol­ish and far more mod­el­ing pow­er in future releas­es.

SF: What is the next big thing for Min­sky?

Min­sky Team: This depends on get­ting sub­stan­tial addi­tion­al fund­ing for pro­gram­ming, but after some more work refin­ing the inter­face, we intend extend­ing its abil­i­ty to mod­el the econ­o­my by enabling it to rep­re­sent an econ­o­my as a num­ber of indus­tri­al sec­tors, each of which buys inputs from and sells out­put to the oth­ers.

Then we will add the abil­i­ty to mod­el inter­na­tion­al trade and finan­cial flows between dif­fer­ent nation­al economies.  We have already done proof-of-con­cept mod­el­ing of mul­ti-sec­toral mon­e­tary mod­els in Math­cad and Math­e­mat­i­ca, so we know this can be done.  Simul­ta­ne­ous­ly we will add the capa­bil­i­ty to import eco­nom­ic data and to derive sys­tem para­me­ters from data using non­lin­ear para­me­ter esti­ma­tion tech­niques.

We have some ideas on how to rep­re­sent and manip­u­late sta­tis­ti­cal data that are also nov­el and we hope will give Min­sky appeal to data ana­lysts as well.  We also plan to add two addi­tion­al ways to mod­el dynam­ic sys­tems: direct entry of equa­tions in a TeX-like inter­face and what is known as a “Social Account­ing Matrix” (SAM), which also ensures mod­el con­sis­ten­cy. There would be each-way con­ver­sion between these three design methods—so equa­tions would be con­vert­ed to flow­chart dia­grams and SAM entries auto­mat­i­cal­ly, and vice ver­sa.

SF: How long do you think that will take?

Min­sky Team: If we can get a team of about half a dozen pro­gram­mers work­ing full-time, it could be com­plet­ed with­in 2–3 years.

SF: Do you have the resources you need to make that hap­pen?

Min­sky Team: Not at present! Though there are some offers of fund­ing that may come our way—we’ll let you know if they do! This is not your stan­dard Open Source project where pro­gram­mers with an innate inter­est in the top­ic are plen­ti­ful, or where cor­po­ra­tions see it as in their inter­ests to let their pro­gram­mers devel­op a tool: very few econ­o­mists have any skills in com­put­ing at all, and only a hand­ful of econ­o­mists are non-ortho­dox in their approach and there­fore inter­est­ed in dynam­ic mon­e­tary mod­el­ing. So we do rely on being able to hire pro­gram­ming tal­ent.

Min­sky has come so far so quick­ly because of the hap­pen­stance that the non-ortho­dox econ­o­mist Steve Keen and the high-per­for­mance com­put­ing pro­gram­mer Rus­sell Stan­dish have been friends and research col­lab­o­ra­tors for almost two decades. We have also been assist­ed by a vol­un­teer pro­gram­mer in the USA, and some capa­ble free­lancers in Rus­sia and France.

SFIf you had it to do over again, what would you do dif­fer­ent­ly for Min­sky?

Min­sky Team: The only thing that might have been bet­ter would be to pro­gram in an envi­ron­ment that gen­er­at­ed code for mul­ti­ple plat­forms eas­i­ly. TCL/Tk was cho­sen due to exist­ing exper­tise, its inbuilt can­vas func­tion­al­i­ty, and its abil­i­ty to get some­thing work­ing quick­ly. But it has lim­i­ta­tions in terms of plat­forms sup­port­ed (basi­cal­ly Win­dows, MacOS Aqua and X11), when tablets and web browsers are desir­able tar­gets for the future.

SFWhy?

Min­sky Team: A lot of time has been wast­ed writ­ing spe­cif­ic rou­tines to cir­cum­vent idio­syn­cra­cies in Win­dows and Mac for this cross-plat­form soft­ware, which is prob­a­bly the case with any cross plat­form GUI frame­work. More­over, sub­stan­tial effort was required to get ade­quate graph­ics per­for­mance, which has not trans­lat­ed onto the Mac­in­tosh, because Tk is writ­ten using the old Quick­draw API, and not eas­i­ly adapt­ed to using the more mod­ern Cocoa API.

Fur­ther­more, some means of tar­get­ting Android, iOS and Web browsers is also desir­able going for­ward, so inves­ti­gat­ing oth­er GUI toolk­its is desir­able.

But apart from that we didn’t take any wrong turns that we lat­er had to reverse. It’s been a pret­ty smooth devel­op­ment process so far.

SFAny rea­son you can’t do that now?

Min­sky Team: Most­ly because user func­tion­al­i­ty on stan­dard PCs/workstations has trumped port­ing the soft­ware to these oth­er platforms.The only thing that might have been bet­ter would be to pro­gram in an envi­ron­ment that gen­er­at­ed code for mul­ti­ple plat­forms eas­i­ly. TCL/Tk was cho­sen due to exist­ing exper­tise, its inbuilt can­vas func­tion­al­i­ty, and its abil­i­ty to get some­thing work­ing quick­ly. But it has lim­i­ta­tions in terms of plat­forms sup­port­ed (basi­cal­ly Win­dows, MacOS Aqua and X11), when tablets and web browsers are desir­able tar­gets for the future.

SFWhy?

Min­sky Team: A lot of time has been wast­ed writ­ing spe­cif­ic rou­tines to cir­cum­vent idio­syn­cra­cies in Win­dows and Mac for this cross-plat­form soft­ware, which is prob­a­bly the case with any cross plat­form GUI frame­work. More­over, sub­stan­tial effort was required to get ade­quate graph­ics per­for­mance, which has not trans­lat­ed onto the Mac­in­tosh, because Tk is writ­ten using the old Quick­draw API, and not eas­i­ly adapt­ed to using the more mod­ern Cocoa API.

Fur­ther­more, some means of tar­get­ting Android, iOS and Web browsers is also desir­able going for­ward, so inves­ti­gat­ing oth­er GUI toolk­its is desir­able.

But apart from that we didn’t take any wrong turns that we lat­er had to reverse. It’s been a pret­ty smooth devel­op­ment process so far.

SFAny rea­son you can’t do that now?

Min­sky Team: Most­ly because user func­tion­al­i­ty on stan­dard PCs/workstations has trumped port­ing the soft­ware to these oth­er plat­forms.

SFA sig­nif­i­cant por­tion of our com­mu­ni­ty are inter­est­ed in dig­i­tal cur­ren­cies such as Bit­coin. Is it pos­si­ble to mod­el such a cur­ren­cy in Min­sky, and if so what inter­est­ing ques­tions might be answered?

Min­sky Team: Bit­coin is a peer-to-peer sys­tem, mean­ing that trans­fers from one indi­vid­ual to anoth­er don’t go through a bank. That would be easy to mod­el in Min­sky. And there’d be a reser­voir of Bit­coins with 21 mil­lion in exis­tence, a frac­tion of those in cir­cu­la­tion, a vari­able but slow rate of extrac­tion, and so on.

The exchanges would also be rel­a­tive­ly easy to model—though you’d need to have a price for Bit­coin in rela­tion to the local fiat cur­ren­cy. The volatil­i­ty of this price could be sim­u­lat­ed as well.

The issues that would be hard­er to cap­ture involve things like whether com­peti­tors to Bit­coin would spring up because of Bitcoin’s suc­cess, whether its pop­u­lar­i­ty might wane as a result, whether its pen­e­tra­tion becomes uni­ver­sal (100% of peo­ple hav­ing a bit­coin account), or not. Over­all we think that mul­ti-agent mod­els and con­ta­gion-ori­ent­ed mod­el­ing might work bet­ter on those issues than Min­sky.

With suf­fi­cient fund­ing and pro­gram­ming sup­port, mul­ti-agent capa­bil­i­ties could be added to our cur­rent sys­tem dynam­ics toolk­it. Much of Min­sky was based on Rus­sell Standish’s Eco­labproject, which is a mul­ti-agent mod­el­ing sys­tem, so the code base already exists.

SFIt seems that the eco­nom­ic mod­els designed in Min­sky can become quite com­plex, and can ben­e­fit from the fea­tures of open source – many eyes to iden­ti­fy bugs in the mod­el, fork­ing a mod­el to bring more detail to a spe­cif­ic eco­nom­ic sec­tor, and then shar­ing that fork back to a cen­tral mod­el bank. Do you fore­see one, or a few, detailed mod­els evolv­ing along those lines, and being shared among many users to do research? Or do you antic­i­pate many inde­pen­dent, ad-hoc mod­els being used?

Min­sky Team: We want to devel­op a data­base for users and mod­el devel­op­ment and sharing—and in fact one was devel­oped by stu­dent pro­gram­mers as part of a web-based ver­sion of Min­sky. That part of the project is on hold giv­en lack of fund­ing, but the code for real-time simul­ta­ne­ous devel­op­ment of the same mod­el on mul­ti­ple com­put­ers works.

We expect to see a whole eco-sys­tem of mod­els, some at quite basic lev­els for teach­ing or explor­ing spe­cif­ic issues, oth­ers which will be extreme­ly sophis­ti­cat­ed and will def­i­nite­ly need “many eyes” for both devel­op­ment and de-bug­ging.

SFWhat’s the best exam­ple of “sta­bil­i­ty is desta­bi­liz­ing” that you’ve seen from the Min­sky soft­ware so far?

Min­sky Team: The best instance so far is a mon­e­tary ver­sion of Keen’s 1992 mod­el in which price defla­tion ampli­fies the trend to insta­bil­i­ty. The final cri­sis is a down­ward col­lapse due to pri­vate debt falling less rapid­ly than GDP col­laps­es due to no invest­ment and deflation—which is what hap­pened in the Great Depres­sion. As with the 1992 mod­el, the cri­sis is pre­ced­ed by a decline in the volatil­i­ty of employ­ment, and also inflation—as hap­pened in the real world—and work­ers’ share of income falls as well.

This mod­el is incomplete—there are incon­sis­ten­cies in the mon­e­tary and phys­i­cal flow components—but it shows the capac­i­ty of gen­uine­ly mon­e­tary dynam­ic mod­els of cap­i­tal­ism to cap­ture its behav­ior in way that the stan­dard non-mon­e­tary mod­els can­not.

SF: Is there any­thing else we should know?

Min­sky Team: Yes. We’d love to devel­op a sub­stan­tial user com­mu­ni­ty, and that com­mu­ni­ty could help us devel­op both exam­ples and a com­pre­hen­sive help sys­tem. We’ve been defi­cient on this front because the devel­op­ment team is so small.

SFCon­grat­u­la­tions to you all on this excel­lent bit of work, not only for the OSS com­mu­ni­ty, but for folks look­ing to uti­lize such mod­el­ing sys­tems.

You can down­load the lat­est ver­sion of Min­sky from here.

Check out the down­load sta­tis­tics from here.

Bookmark the permalink.

About Steve Keen

I am Professor of Economics and Head of Economics, History and Politics at Kingston University London, and a long time critic of conventional economic thought. As well as attacking mainstream thought in Debunking Economics, I am also developing an alternative dynamic approach to economic modelling. The key issue I am tackling here is the prospect for a debt-deflation on the back of the enormous private debts accumulated globally, and our very low rate of inflation.