[p2p-research] FOSS modeling tools (was Re: Earth's carrying capacity and Catton)

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Sat Aug 15 22:33:26 CEST 2009


Ryan Lanham wrote:
 > Personally I wish a programmer type would produce an open source modelling
 > tool of the simplicity and clarity associated with Stella which I started
 > using on the mac almost 20 years ago. We need a graphical modeling
 > environment that allows simple math models to be visualized as Stella
 > does.
 > I've long looked for a free/open source substitute but have found none.
 > I'd be very interested if anyone has seen something of that sort.
 >
 > I have long wished for an open P2P math model environment where complex
 > math models would be built, linked and vetted collaboratively as with a
 > wiki.  I know of no such project.

I'd love to do that kind of stuff.

One proposal was shot down by the NSF twelve years ago (1997): :-(
   http://www.kurtz-fernhout.com/nsfprop.htm
"""
... We plan to enhance the product so users can develop their own models and 
modify existing models and collaborate with others by sharing models and 
data over the internet. ... The modeling framework of version 2.0 will 
support the development of models ranging from very simple to complex. Users 
will choose a base model, then add their own equations and methods or modify 
existing ones. The model development environment will include debugging, 
version control, and flexible data storage. Sharing of model code and data 
will be supported so that collaborative efforts will be possible over the 
internet.
"""

That was intended to be a general tool, even if at the time it was oriented 
towards agricultural simulation.

We ran out of money after 1.1 (released under the GPL with source) and spent 
years working for others on unrelated stuff to pay back vast amounts of 
money we borrowed for living expenses to finish the first version. :-(

Granted, we did not keep trying with lots of other funding sources.

So, if you want to know why there is not free (and better) alternative to 
proprietary stuff like you mention, that is part of the story. Of course, 
*now* NSF funds some open stuff and related conferences,
"NSF Workshop on Modeling and Simulation for Design of Large 
Software-Intensive Systems: Challenges and New Research Directions (DLS03) 
[Dec 3-4, 2003] "
   http://www.acims.arizona.edu/EVENTS/DLS03/DLS03.htm
but without PhDs, we're not "qualified" in that sense these days, especially 
with the vast competition for grants.
   http://www.its.caltech.edu/~dg/crunch_art.html
And the US government still funds lots of proprietary stuff, so even when 
universities get grants, you can't assume to be working on stuff that is 
free and open source.
http://www.pdfernhout.net/open-letter-to-grantmakers-and-donors-on-copyright-policy.html

Below I will attach some recommendations about current open source modeling 
software written from a homeschooling perspective. One might be able to 
start from those links and build up a whole environment for modeling these 
sorts of issues.

Here is also another source of information I sent to a homeschooler with a 
child interested in political science and video games:
"""
Tell [name] I appreciate him mentioning that there were websites about 
political games written in flash; I see there are a few:
   http://www.google.com/#hl=en&q=political+games
By the way, here is a link for him also related to mixing his political 
science interests with simulation and games (academic stuff like SimCity):
   http://en.wikipedia.org/wiki/Artificial_society
"Artificial Society is the specific agent based computational model for 
computer simulation in social analysis. It is mostly connected to the theme 
in complex system, emergence, Monte Carlo Method, computational sociology, 
multi-agent system, and evolutionary programming. The concept itself is 
simple enough. Actually reaching this conceptual point took a while. Complex 
mathematical models have been, and are, common; deceivingly simple models 
only have their roots in the late forties, and took the advent of the 
microcomputer to really get up to speed."
   A few posts I had made about that field in 2002 (although most of the 
links in those posts are no longer working):
   http://lists.gnu.org/archive/html/simulchaord-discuss/
Here is a related older book:
   "Growing Artificial Societies"
   http://www.brookings.edu/press/Books/1996/artifsoc.aspx
   http://mitpress.mit.edu/catalog/item/default.asp?tid=5847&ttype=2
And a recent article:
   http://www.brookings.edu/interviews/2008/0402_agent_based_epstein.aspx
A classical example:
   http://en.wikipedia.org/wiki/The_Evolution_of_Cooperation
So, lots of fun stuff that is also linked to cutting edge political science.
"""

So yes, this is a very exciting area of research (even a dozen years later) 
that I am still interested in.

Implicitly, a lot of what we are doing in the free culture movement is 
creating for free and in public the equivalent of what neoconvervatives in 
the USA did with lots of money in private. :-) Not to say money would not 
help. :-)

One could easily have hundreds (even thousands) of people in a research 
institute working on this kind of stuff. Would be a lot of fun. :-)
The Brookings Institution had people doing that for a long time (links above 
to a book by Joshua M. Epstein and Robert Axtell; Epstein is still at 
Brookings).

A simulation and modeling and analysis environment might be one part of a 
proposal in relation to the funding opportunities that you and Michel have 
posted to the list for education and EU citizen participation and peer 
governance. It also links with the Joseph Jackson initiative on games to an 
extent. So, maybe, a long time later, such is now possible? I can hope it is 
true for somebody. I agree the word really needs this sort of tool.

Anyway, such tools are all part of what I wanted the kitchen-sink of the 
Pointrel Social Semantic Desktop to have as plug-in modules (or perhaps just 
plugins that acted as gateways to existing mathematical packages like 
mentioned below).
  http://sourceforge.net/projects/pointrel/

For whatever reason, I just end up writing more emails instead though these 
days though; I'm tremendously torn between writing more on abundance issues 
and working on such software. I really should be working on the software 
though, since, unlike writing emails, there is some tiny hope (as discussed 
on the Open Manufacturing list) that I could supply a fee-based add-on 
service for convenience for using the FOSS software. For example, if I could 
get 50,000 users of the FOSS Pointrel system, and 1% paid US$100 a year for 
the convenience of a related service like a relay server that was 
pre-configured and backed up and came with an hour of tech support, that 
would be terrific and let me keep doing that indefinitely. Still, with 
Google Wave and Microsoft-owned Groove and NEPOMUK and several other 
packages (OpenKollab in yet another attempt), it's not clear if the world 
needs a new platform though, even if I feel my approach has some interesting 
different characteristics. It is potentially more p2p in some ways,  because 
it is intended to support keeping a copy of all information on the desktop, 
plus running on Java it is fairly cross-platform, plus the data format is 
designed to be extensible in a semantic web sort of way.

Anyway, I'd be happy to be on any such proposals for such modeling tools, 
content, and supporting infrastructure as long as the work was free and open 
source. :-) Might as well get paid for stuff I want to do anyway, so I can 
keep doing it longer. :-) Or afford to go to related conferences, etc. :-)

--Paul Fernhout
http://www.pdfernhout.net/

=========
Sent to a local homeschooling list, in response to a question about math 
software.
Re: Algebra and Beyond Software; 6/7/07 4:58 PM

Here is a link to a discussion about "Open Source Math Software For
Education":
   http://ask.slashdot.org/article.pl?sid=04/12/13/2355258
It does not discuss curricula (perhaps that was more your interest?) but
does discusses computer software tools which does mathematical things.
In general, these sorts of tools can be wonderful playthings if you
and/or your child have the time and inclination to wrestle with them.

Another summary link:
   "Software for Mathematics Education"
   http://math.tkk.fi/~arasila/mathedu.html

Here is another link to a discussion of three big free software packages:
    http://math-blog.com/2007/06/02/3-awesome-free-math-programs/

The big three mentioned there are:

   Scilab
   http://www.scilab.org/
"Scilab is a scientific software package for numerical computations
providing a powerful open computing environment for engineering and
scientific applications."
See also the related Scicos:
   http://www.scicos.org/
"Scicos is a graphical dynamical system modeler and simulator toolbox
included in the  Scilab ®  engineering and scientific computation
software. With Scicos you can create block diagrams to model and
simulate the dynamics of hybrid dynamical systems and compile your
models into executable code. Scicos is used for signal processing,
systems control, queuing systems, and to study physical and biological
systems. New extensions allow generation of component based modeling of
electrical and hydraulic circuits using  the Modelica language."

   Maxima
   http://maxima.sourceforge.net/
"Maxima is a system for the manipulation of symbolic and numerical
expressions, including differentiation, integration, Taylor series,
Laplace transforms, ordinary differential equations, systems of linear
equations, polynomials, and sets, lists, vectors, matrices, and tensors.
Maxima yields high precision numeric results by using exact fractions,
arbitrary precision integers, and arbitrarily precision floating point
numbers. Maxima can plot functions and data in two and three dimensions."

   R
   http://www.r-project.org/
"R is a free software environment for statistical computing and
graphics. It compiles and runs on a wide variety of UNIX platforms,
Windows and MacOS."

Here is another free package discussed at the first link:
   http://www.gnu.org/software/octave/
"GNU Octave is a high-level language, primarily intended for numerical
computations. It provides a convenient command line interface for
solving linear and nonlinear problems numerically, and for performing
other numerical experiments using a language that is mostly compatible
with Matlab."

Here is another (simpler) free package for statistics and plotting:
   http://www.gnuplot.info/
"Gnuplot  is a portable command-line driven interactive data and
function plotting utility for UNIX, IBM OS/2, MS Windows, DOS,
Macintosh, VMS, Atari and many other platforms. "

However, to get a lot out of any of them, you have to put some time into
them and probably consult additional reference materials in their
tutorial manuals, on the web, and/or in related textbooks. Also, these
tools are all are a matter of convenience -- a general purpose
programming tool with some good libraries (e.g. Python + SciPy)
   http://www.scipy.org/
   http://www.scipy.org/Topical_Software
can let you do pretty much anything these specialized packages do and in
a much more expandable way -- it just takes *much* more time and
understanding to work with the general tools (though you learn a lot
doing that). I'd suggest perhaps doing both -- play with the tools *and*
try to learn how to program with various packages. :-)

As you can see from especially the third link above, there are several
other tools. I'm not sure how well all of these run under other
operating systems (most probably do run under Windows, but my wife and I
don't use that ourselves anymore except under emulation on the Mac or
Linux). You can probably find most of theses tools included (or easily
loadable) in Ubuntu (a version of GNU/Linux), which is available for
free here (you can download and burn a bootable CD to run these when you
want by rebooting, even if you run Windows):
   http://www.ubuntu.com/
and they also mail out free CDs (but it may take some time -- see the
links on that page). There is also an "Edubuntu" educational variant,
but it seems more targeted at schools and I haven't tried it.
Instructions for loading some of these packages into Ubuntu:
http://ubuntuforums.org/showthread.php?s=c8e173f81d97693ff7bb02ad5cefba0a&t=402802&highlight=Mathematical+software

Any one of these packages is a project to get to know and understand. It
might takes quite a while to get a feel for them. But I think mastering
any of these packages will have a lot of practical value -- more so than
doing some paper exercises.

While our child is [not that old] (and so I haven't tried to use these
packages to teach him math; I'm still focusing on John Holt's ideas of
seeing how small numbers like nine can be broken down and assembled many
ways), I have been involved tangentially with some people doing
mathematical education using computer software for more advanced math,
primarily using the programming language Python.
   http://www.python.org/
There is a newer way of thinking about math and physics which suggests
thinking about that as just a subpart of computer programming, rather
than a more classical school subject approach which often puts computer
programming as an add-on under math & physics. :-) Essentially, by
developing programs and simulations of interest to a child, a child
learns more and more about basic principles of mathematics they need to
solve problems of interest to them, as well as to develop a certain type
of mathematical thinking skills related to precision and causality and
symbol manipulation and so on. Learning to program then becomes the
stepping stone to learning about math and physics.

For example, a child can learn a lot about trigonometry by just playing
around with a 2D or 3D turtle:
   "turtle -- Turtle graphics for Tk using Python"
   http://docs.python.org/lib/module-turtle.html
However they typically need to learn a little programming first (like
how to write a loop). Consider, for example, this college assignment:
   "Mandelbrot, Turtle Graphics and L-Systems in Python"
   http://www.cs.unc.edu/Courses/comp144-s02/assignments/2/index.html
I would think those sorts of experiments could keep a high schooler busy
for quite a while, while also learning about angles and distances and
mathematical reasoning (while they debug their graphical programs); but
I wouldn't try those as a first step for someone who did not already
know programming. Here is a simple code snippet for someone wanting to
learn some simple programming and turtle graphics with Python:
   "Turtle Graphics (Python)"
   http://www.daniweb.com/code/snippet304.html
Modify that to draw a few geometric shapes (cubes, octagons,
parallelograms, etc.) and it's a start down the path of 2D geometry. :-)

Here is a bigger set of links (mostly programs) related to
Python+Geometry for homeschoolers
   http://www.4dsolutions.net/ocn/pygeom.html
In general the author of that site has a lot to say about the
intersection of computing and mathematics.

To get more advanced in 3D geometry, here is a free package by the late
Arthur Siegel to do interactive 3D geometry in Python:
   http://pygeo.sourceforge.net/
"PyGeo is most fundamentally a framework for the creation of dynamic
geometric constructions - i.e. constructions which embody defined and
persistent geometric relationships responsive to real time on-screen
interactivity. PyGeo is, further, an implementation of this underlying
abstract framework - exposing a range of geometric objects as the
building blocks for virtual, dynamic geometric constructions. The focus
is away from Euclidian geometry and metrics, and toward later geometric
and mathematical developments - particularly those connected with
projective geometry of real space, and the geometry of complex numbers
on the plane and on the unit (Riemann) sphere."

Nothing about school-style trigonometry "proofs" there though -- except
the ones you build for yourself in passing to debug things. Here's lots
of links related to logic software and logic education if you want to
focus on proofs (includes some links to theorem provers):
   http://www.cs.otago.ac.nz/staffpriv/hans/logiccourseware.html
But I would think this a dustier and drier route for most kids to get an
intuition for geometrical things than indirectly via programming.

By the way, some fraction of the population has trouble visualizing or
rotating things in 2D or 3D,
   http://en.wikipedia.org/wiki/Spatial_Visualization_Ability
so some kids find geometry much easier than others. I think 3D spatial
visualization tools may help narrow that gap, especially tools which can
make the 3d object rotate (at least slightly). Related exercises:
"Spatial Encounters: Exercises in Spatial Awareness."
http://www.womentechstore.com/edpw031-spatial-encounters-introduction.html
http://eric.ed.gov/ERICWebPortal/custom/portlets/recordDetails/detailmini.jsp?_nfpb=true&_&ERICExtSearch_SearchValue_0=ED236183&ERICExtSearch_SearchType_0=eric_accno&accno=ED236183
Likewise some kids almost need to visualize things to feel they
understand them as opposed to accept purely symbolic representations;
there are various approaches to mathematics that are more highly visual
than others. Example:
   http://www.ms.uky.edu/~lee/visual05/visual05.html
If there is one issue that may make or break in some advanced math
studies, it is an ability to visualize. If the kid in question isn't
good at that, it may help more to focus early on visualization skills
(including blueprint reading) than to move ahead to more advanced topics.

Here is another programming language system Squeak (Smalltalk) which has
various educational tools in it like turtles:
   http://www.squeak.org/Features/
It has a steeper learning curve than Python though.

In my own life I've found the only major use for trigonometry was
writing 3D graphics software. :-) Here is a example of such software
(available for free) which my wife and I wrote:
  http://www.kurtz-fernhout.com/PlantStudio/index.htm
"PlantStudio Botanical Illustration Software is a tool for creating 3D
plant models and 2D illustrations. PlantStudio simulates herbaceous
(non-woody) plants like wildflowers and cut flowers, vegetables, weeds,
grasses, and herbs using a parameter-driven simulation of plant growth
and structure. You can "grow" plants over their life cycles, producing
lifelike images at any age. You can design, animate and breed a wide
variety of plants. By using the "evolutionary arts" of variation and
selection in the plant breeder, you can quickly and easily create whole
families of unique plants for your 3D scenes."
There's a lot of stuff in there about angles and rotations and so on --
can't help but learn a little about trigonometry (and botany) even by
just playing with it.

While I know schools tend to focus on a chain of algebra, trigonometry,
calculus, (especially for kids interested in engineering) I'd suggest
learning about probability and statistics (done as part of developing a
computer simulation) would generally be a more useful mathematical skill
in the real world for most people, since we all need to make decisions
every day related to risks and also trying to read between the lines of
newspaper articles and advertisements throwing statistics around in an
attempt to inform or persuade us.

For example, here is a fun link about how to lie with statistics:
   http://faculty.washington.edu/chudler/stat3.html
"Ok...this is what you have been waiting for. How can you lie with
statistics? Actually, the purpose of this page is NOT to teach you how
to lie and cheat with statistics. Rather, I hope you will learn how it
is possible to be misled and how to spot "statistical abuse." You can
find poor use of statistics everywhere...magazines, newspapers, polls,
TV, even research papers. I do not want to hear of any of you readers
using these poor methods."

And here is a book on that topic:
   _How to Lie With Statistics_
   http://www.amazon.com/How-Lie-Statistics-Darrell-Huff/dp/0393310728

There are also a variety of free instructional videos available over the
web as part of the Annenberg CPB project if you have a fast internet
connection (and otherwise likely available from a local library or
through interlibrary loan):
   http://www.learner.org/resources/browse.html
Exmaples:
"Against All Odds: Inside Statistics; This video instructional series
for college and high school classrooms and adult learners leads to a
greater understanding of statistics by exploring authentic examples —
from environmental studies to weight-loss programs."
"Algebra: In Simplest Terms; This video instructional series for college
and high school classrooms and adult learners guides students
step-by-step through algebra concepts, while highlighting common trouble
spots."
"Learning Math: Geometry; Learn the basics of geometry in this video-
and Web-based course for K-8 teachers."

I haven't watched any of those, but many years ago I did go through the
entire Mechanical Universe physics series for myself and liked it:
  "The Mechanical Universe…and Beyond; This video instructional series
for college and high school classrooms and adult learners demystifies
physics and illustrates abstract concepts."
(Physics ends up being mostly math at more advanced stages.)
I also enjoyed their World of Chemistry, but I didn't see that is
online. There is also an accompanying textbook to the Mechanical
Universe; if you really wanted something like a curriculum, that might
be a way to go which integrates mathematics into a physical setting that
helps motivate its study.

Anyway, plenty of open-ended free resources to play with and learn
something mathematical for kids or adults.

--Paul Fernhout



More information about the p2presearch mailing list