Last edited on
2007-11-28 08:36:40 by KrzysztofSobolewski
[Update a bit to recent developments in Starmapper]
Additions:
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They have some properties - like position and name - and can belong to at most one region, called (surprise!) "owner" (can also be owned by noone);
- **Regions**: these are virtual beings that reside on nodes and can "reach" through space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes the calculated influences for each point for each region and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere), dependent on [[DataModel Data Model]]. Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is the reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time, although each Node Info can claim being from different time (although not from the future, relative to the report, of course...). There can be more reports from the same time, provided that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is), which is the difference between time claimed by the Node Info and the Report's time. In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report (taken by Starmapper) can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie] and recently also there's a Data Model for [[http://www.thousandparsec.net/ Thousand Parsec]];
Deletions:
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
Additions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=554137 3.0.0b3]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Deletions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=554137 3.0.0b3]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Additions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=554137 3.0.0b3]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Deletions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=539765 3.0.0b2]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Additions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=539765 3.0.0b2]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Deletions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b2]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Additions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b2]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Deletions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
Additions:
>>===Status===
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- **Version 2**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- **Version 1**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).
- **Full Disclosure**: [[http://starmapper.sourceforge.net/index.html old starmapper page]] (but... be... prepared...)
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/demos/apocal-2510-d.png DefaultPlotter]] (don't base your opinion on this one!), [[http://starmapper.sourceforge.net/demos/apocal-2510-c.png CappedPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-s.png SmoothPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-m.png MixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-cm.png CappedMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-sm.png SmoothMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-o.png DominationPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-b.png BorderPlotter]]; and also: [[http://starmapper.sourceforge.net/demos/starmapper3-capped-bug.jpg CappedPlotter with a bug ;)]].
- **SourceForge.net page**: [[http://sourceforge.net/projects/starmapper]]>>
===Greetings===
Welcome to home page of Starmapper, the mapping utility for [[http://www.crisium.com Stars!]] and beyond!
===Overview===
Starmapper is a mapping utility written in [[http://java.sun.com Java]]. It means that it will read some files and output an image (or series of images) presenting a map of influences of regions (usually colored blobs). It's rather limited in what it can do, but I think it is useful anyway :)
Actually (in version 3) Starmapper consists of several parts:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. [[BatchMode Batch mode]] means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
- [[StarmapperAppCli starmapper-app-cli]]: a traditional ""CLI"" application;
- [[StarmapperAppGui starmapper-app-gui]]: an additional ""GUI"" application for non-geeks [actually it's "traditional" too, in a sense that it was available since Starmapper version 1, but it has always been a second-class citizen ;)];
- [[JezuchUtils jezuch-utils]]: a library of support classes that are generic (pun intended, for those that get the joke) enough to put them in a library separate from Starmapper.
At some point in time I also created a servlet that sat on a server and generated images from files submitted via HTTP POST. I may revive this subproject some day...
===Concepts===
Starmapper (the library part) operates on several concepts:
- **The Map""™""**: a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
- **[[UnifiedConfigurationModel Unified Configuration Model]]**: this buzzword-sounding name means a system of passing somewhat type-safe parameters to Starmapper. The same infrastructure can be used by client applications, of course, and that's why it's called "unified".
===Historical Note===
Previous versions of Starmapper carried the "Stars! mapping utility" moniker. That's a reflection of how it all started - for a couple of years of "best years in my life" i was a Stars! junkie. Stars! is (was?) a turn-based strategy game in which up to 16 players turn into Galactic Imperators and try to destroy each other with their fleets of spaceships. Oh, the memories! Stars! can dump several statistics for the current turn (each turn is one game-year). Several useful tools can take these reports and do lots of interesting things with it. I, for one, wanted to have maps of the Empires. There were at least two tools for that purpose: starmap (very old, written in Pascal) and Xtreme Borders (Visual Basic, yuk! - but very competent tool). I am a geek and wanted to do better. So I wrote Starmapper (version 1). Technically, it was a success. Unfortunately I am the shy kind of geek, so it was a disaster in terms of marketing - almost nobody cared ;) Anyway, that's why in versions 1 and 2 Nodes are called Planets, Regions are Players and Node Infos, are (surprise!) Planet Infos.
Deletions:
>>===Status===
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- **Version 2**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- **Version 1**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).
- **Full Disclosure**: [[http://starmapper.sourceforge.net/index.html old starmapper page]] (but... be... prepared...)
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/demos/apocal-2510-d.png DefaultPlotter]] (don't base your opinion on this one!), [[http://starmapper.sourceforge.net/demos/apocal-2510-c.png CappedPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-s.png SmoothPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-m.png MixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-cm.png CappedMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-sm.png SmoothMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-o.png DominationPlotter]]; and also: [[http://starmapper.sourceforge.net/demos/starmapper3-capped-bug.jpg CappedPlotter with a bug ;)]].
- **SourceForge.net page**: [[http://sourceforge.net/projects/starmapper]]>>
===Greetings===
Welcome to home page of Starmapper, the mapping utility for [[http://www.crisium.com Stars!]] and beyond!
===Overview===
Starmapper is a mapping utility written in [[http://java.sun.com Java]]. It means that it will read some files and output an image (or series of images) presenting a map of influences of regions (usually colored blobs). It's rather limited in what it can do, but I think it is useful anyway :)
Actually (in version 3) Starmapper consists of several parts:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. [[BatchMode Batch mode]] means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
- [[StarmapperAppCli starmapper-app-cli]]: a traditional ""CLI"" application;
- [[StarmapperAppGui starmapper-app-gui]]: an additional ""GUI"" application for non-geeks [actually it's "traditional" too, in a sense that it was available since Starmapper version 1, but it has always been a second-class citizen ;)];
- [[JezuchUtils jezuch-utils]]: a library of support classes that are generic (pun intended, for those that get the joke) enough to put them in a library separate from Starmapper.
At some point in time I also created a servlet that sat on a server and generated images from files submitted via HTTP POST. I may revive this subproject some day...
===Concepts===
Starmapper (the library part) operates on several concepts:
- **The Map""™""**: a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
- **[[UnifiedConfigurationModel Unified Configuration Model]]**: this buzzword-sounding name means a system of passing somewhat type-safe parameters to Starmapper. The same infrastructure can be used by client applications, of course, and that's why it's called "unified".
===Historical Note===
Previous versions of Starmapper carried the "Stars! mapping utility" moniker. That's a reflection of how it all started - for a couple of years of "best years in my life" i was a Stars! junkie. Stars! is (was?) a turn-based strategy game in which up to 16 players turn into Galactic Imperators and try to destroy each other with their fleets of spaceships. Oh, the memories! Stars! can dump several statistics for the current turn (each turn is one game-year). Several useful tools can take these reports and do lots of interesting things with it. I, for one, wanted to have maps of the Empires. There were at least two tools for that purpose: starmap (very old, written in Pascal) and Xtreme Borders (Visual Basic, yuk! - but very competent tool). I am a geek and wanted to do better. So I wrote Starmapper (version 1). Technically, it was a success. Unfortunately I am the shy kind of geek, so it was a disaster in terms of marketing - almost nobody cared ;) Anyway, that's why in versions 1 and 2 Nodes are called Planets, Regions are Players and Node Infos, are (surprise!) Planet Infos.
Additions:
>>===Status===
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; first public ("version-stamped") release - [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=206888&release_id=453448 3.0.0b]] - is in the download area on SourceForge, and the current code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- **Version 2**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- **Version 1**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).
- **Full Disclosure**: [[http://starmapper.sourceforge.net/index.html old starmapper page]] (but... be... prepared...)
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/demos/apocal-2510-d.png DefaultPlotter]] (don't base your opinion on this one!), [[http://starmapper.sourceforge.net/demos/apocal-2510-c.png CappedPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-s.png SmoothPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-m.png MixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-cm.png CappedMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-sm.png SmoothMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-o.png DominationPlotter]]; and also: [[http://starmapper.sourceforge.net/demos/starmapper3-capped-bug.jpg CappedPlotter with a bug ;)]].
- **SourceForge.net page**: [[http://sourceforge.net/projects/starmapper]]>>
===Greetings===
Welcome to home page of Starmapper, the mapping utility for [[http://www.crisium.com Stars!]] and beyond!
===Overview===
Starmapper is a mapping utility written in [[http://java.sun.com Java]]. It means that it will read some files and output an image (or series of images) presenting a map of influences of regions (usually colored blobs). It's rather limited in what it can do, but I think it is useful anyway :)
Actually (in version 3) Starmapper consists of several parts:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. [[BatchMode Batch mode]] means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
- [[StarmapperAppCli starmapper-app-cli]]: a traditional ""CLI"" application;
- [[StarmapperAppGui starmapper-app-gui]]: an additional ""GUI"" application for non-geeks [actually it's "traditional" too, in a sense that it was available since Starmapper version 1, but it has always been a second-class citizen ;)];
- [[JezuchUtils jezuch-utils]]: a library of support classes that are generic (pun intended, for those that get the joke) enough to put them in a library separate from Starmapper.
At some point in time I also created a servlet that sat on a server and generated images from files submitted via HTTP POST. I may revive this subproject some day...
===Concepts===
Starmapper (the library part) operates on several concepts:
- **The Map""™""**: a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
- **[[UnifiedConfigurationModel Unified Configuration Model]]**: this buzzword-sounding name means a system of passing somewhat type-safe parameters to Starmapper. The same infrastructure can be used by client applications, of course, and that's why it's called "unified".
===Historical Note===
Previous versions of Starmapper carried the "Stars! mapping utility" moniker. That's a reflection of how it all started - for a couple of years of "best years in my life" i was a Stars! junkie. Stars! is (was?) a turn-based strategy game in which up to 16 players turn into Galactic Imperators and try to destroy each other with their fleets of spaceships. Oh, the memories! Stars! can dump several statistics for the current turn (each turn is one game-year). Several useful tools can take these reports and do lots of interesting things with it. I, for one, wanted to have maps of the Empires. There were at least two tools for that purpose: starmap (very old, written in Pascal) and Xtreme Borders (Visual Basic, yuk! - but very competent tool). I am a geek and wanted to do better. So I wrote Starmapper (version 1). Technically, it was a success. Unfortunately I am the shy kind of geek, so it was a disaster in terms of marketing - almost nobody cared ;) Anyway, that's why in versions 1 and 2 Nodes are called Planets, Regions are Players and Node Infos, are (surprise!) Planet Infos.
Deletions:
>>===Status===
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; no releases yet, code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- **Version 2**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- **Version 1**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).
- **Full Disclosure**: [[http://starmapper.sourceforge.net/index.html old starmapper page]] (but... be... prepared...)
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/demos/apocal-2510-d.png DefaultPlotter]] (don't base your opinion on this one!), [[http://starmapper.sourceforge.net/demos/apocal-2510-c.png CappedPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-s.png SmoothPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-m.png MixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-cm.png CappedMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-sm.png SmoothMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-o.png DominationPlotter]]; and also: [[http://starmapper.sourceforge.net/demos/starmapper3-capped-bug.jpg CappedPlotter with a bug ;)]].
- **SourceForge.net page**: [[http://sourceforge.net/projects/starmapper]]>>
===Greetings===
Welcome to home page of Starmapper, the mapping utility for [[http://www.crisium.com Stars!]] and beyond!
===Overview===
Starmapper is a mapping utility written in [[http://java.sun.com Java]]. It means that it will read some files and output an image (or series of images) presenting a map of influences of regions (usually colored blobs). It's rather limited in what it can do, but I think it is useful anyway :)
Actually (in version 3) Starmapper consists of several parts:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. [[BatchMode Batch mode]] means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
- [[StarmapperAppCli starmapper-app-cli]]: a traditional ""CLI"" application;
- [[StarmapperAppGui starmapper-app-gui]]: an additional ""GUI"" application for non-geeks [actually it's "traditional" too, in a sense that it was available since Starmapper version 1, but it has always been a second-class citizen ;)];
- [[JezuchUtils jezuch-utils]]: a library of support classes that are generic (pun intended, for those that get the joke) enough to put them in a library separate from Starmapper.
At some point in time I also created a servlet that sat on a server and generated images from files submitted via HTTP POST. I may revive this subproject some day...
===Concepts===
Starmapper (the library part) operates on several concepts:
- **The Map""™""**: a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
- **[[UnifiedConfigurationModel Unified Configuration Model]]**: this buzzword-sounding name means a system of passing somewhat type-safe parameters to Starmapper. The same infrastructure can be used by client applications, of course, and that's why it's called "unified".
===Historical Note===
Previous versions of Starmapper carried the "Stars! mapping utility" moniker. That's a reflection of how it all started - for a couple of years of "best years in my life" i was a Stars! junkie. Stars! is (was?) a turn-based strategy game in which up to 16 players turn into Galactic Imperators and try to destroy each other with their fleets of spaceships. Oh, the memories! Stars! can dump several statistics for the current turn (each turn is one game-year). Several useful tools can take these reports and do lots of interesting things with it. I, for one, wanted to have maps of the Empires. There were at least two tools for that purpose: starmap (very old, written in Pascal) and Xtreme Borders (Visual Basic, yuk! - but very competent tool). I am a geek and wanted to do better. So I wrote Starmapper (version 1). Technically, it was a success. Unfortunately I am the shy kind of geek, so it was a disaster in terms of marketing - almost nobody cared ;) Anyway, that's why in versions 1 and 2 Nodes are called Planets, Regions are Players and Node Infos, are (surprise!) Planet Infos.
Additions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/demos/apocal-2510-d.png DefaultPlotter]] (don't base your opinion on this one!), [[http://starmapper.sourceforge.net/demos/apocal-2510-c.png CappedPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-s.png SmoothPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-m.png MixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-cm.png CappedMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-sm.png SmoothMixingPlotter]], [[http://starmapper.sourceforge.net/demos/apocal-2510-o.png DominationPlotter]]; and also: [[http://starmapper.sourceforge.net/demos/starmapper3-capped-bug.jpg CappedPlotter with a bug ;)]].
Deletions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]
Additions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]
- **SourceForge.net page**: [[http://sourceforge.net/projects/starmapper]]>>
Deletions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Additions:
- **Version 3**: progressed from somewhere between alpha and beta (I like to call it gamma) to more-or-less stable API and solidly working implementation; no releases yet, code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. [[BatchMode Batch mode]] means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
Deletions:
- **Version 3**: somewhere between alpha and beta (I like to call it gamma); no releases yet, code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. Batch operation means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
Additions:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]]. This can be a one-time operation or a //batch//. Batch operation means that you give it a bunch of reports to read from and in return you get a [[http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html BlockingQueue]] that will be populated with results over time;
Deletions:
- [[StarmapperCore starmapper-core]]: a class/interface library; it performs lots of CPU-heavy calculations given so-called reports and returns a [[http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/BufferedImage.html BufferedImage]] [**NOTE**: this is a traditional Starmapper's mode of operation which places lots of burden on client application which needs to find all data files, use starmapper-core to read them and feed the results back to starmapper-core; this may change in version 3];
Additions:
- **[[UnifiedConfigurationModel Unified Configuration Model]]**: this buzzword-sounding name means a system of passing somewhat type-safe parameters to Starmapper. The same infrastructure can be used by client applications, of course, and that's why it's called "unified".
Additions:
===Historical Note===
Deletions:
===Historical Node===
Additions:
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in unspecified units (which makes some awkward wording in the code - it's just "time" everywhere). Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
Deletions:
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in years, currently [that's a leftover from previous versions, didn't know how to rename it; see "historical note" below]. Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
Additions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from upcoming version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Welcome to home page of Starmapper, the mapping utility for [[http://www.crisium.com Stars!]] and beyond!
Deletions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Welcome to home page of Starmapper!, the mapping utility for [[http://www.crisium.com Stars!]] and beyond.
Additions:
- **[[Apocal Sample images]]**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Deletions:
- **Sample images**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Additions:
- **Sample images**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Deletions:
- **Sample image**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Additions:
- **Sample image**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]; previews from version 3 (the same map, different [[Plotter plotters]]): [[http://starmapper.sourceforge.net/test-sm3-0.jpg CappedPlotter]], [[http://starmapper.sourceforge.net/test-sm3-1.jpg CappedPlotter with a bug ;)]], [[http://starmapper.sourceforge.net/test-sm3-2.jpg SmoothPlotter]], [[http://starmapper.sourceforge.net/test-sm3-3.jpg MixingPlotter]]>>
Deletions:
- **Sample image**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]>>
Additions:
- **Version 3**: somewhere between alpha and beta (I like to call it gamma); no releases yet, code is in [[https://sourceforge.net/svn/?group_id=57491 SVN]];
- **Version 2**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- **Version 1**: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).
- **Full Disclosure**: [[http://starmapper.sourceforge.net/index.html old starmapper page]] (but... be... prepared...)
- **Sample image**: [[http://starmapper.sourceforge.net/apocal2510.gif from version 2]]>>
- **The Map""™""**: a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- **Nodes**: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- **Regions**: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- **Node Infos**: basically a set of data describing a node //at a point in time//. Time is specified in years, currently [that's a leftover from previous versions, didn't know how to rename it; see "historical note" below]. Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- **Reports**: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- **[[DataModel Data Model]]**: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].
Deletions:
- Version 3: somewhere between alpha and beta (I like to call it gamma); no releases yet, code is in SVN;
- Version 2: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53048&release_id=334513 StarmapperLib 2.3.4]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53129&release_id=334522 StarmapperApp 2.2.3]], [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53130&release_id=334523 StarmapperGUIApp 2.5.1]]; all released 2005-06-12;
- Version 1: [[https://sourceforge.net/project/showfiles.php?group_id=57491&package_id=53134&release_id=99117 Starmapper 1.21]], released 2002-05-05 (from before the split into three).>>
- The Map""™"": a two-dimensional region. "Two-dimensional" means that every point can be reached by giving two coordinates; currently the coordinates are integer numbers (so the precision is limited, but sufficient for all uses known to me - if you need more, gotta ping [[KrzysztofSobolewski me]]). Important component of The Map is The Space. It is uniformly flat - so forget about mapping a reachability of electromagnetic waves in a complex terrain (sorry);
- Nodes: points on the The Map. They are the basic "skeleton" on which Starmapper operates. They can't move [patches welcome ;)], they have some properties - like position and name - and can belong to at most one region (can also be owned by noone);
- Regions: these are a virtual beings that reside on nodes and can "reach" through a space to claim "ownership" of it. Each node can have at most one owning region; it is then determined what "influence" this node has on the surrounding space. The result is a field ([[Wikipedia:Field_(physics) as in physics]]) of influences **for each region** on the map. At the end, a thing called [[Plotter]] takes this data and creates a [[http://www.catb.org/jargon/html/P/pretty-pictures.html pretty picture]].
- Node Infos: basically a set of data describing a node //at a point in time//. Time is specified in years, currently [that's a leftover from previous versions, didn't know how to rename it; see "historical note" below]. Data about a node can contain anything is necessary to calculate its influence, but Starmapper is interested only in the result, including the influence, who is the owner and who says these things about the node (that is reporter);
- Reports: report is simply a collection of Node Infos from one point in time. There can be more reports from the same time, provoded that they have different reporters (reporter is one of the regions on The Map). Every Node Info in a report has an age (how fresh it is). In case of conflicts between Node Infos in two reports about the same node, report age becomes important as the final report can't have multiple sets of information about each node - they have to be merged. Merging is a responsibility of [[DataModel Data Model]] (see below);
- [[DataModel Data Model]]: since version 3, nodes, regions and node infos are all actually Java interfaces - this makes Starmapper somewhat generic tool, and the outside world needs to provide concrete implementations of these interfaces. Starmapper bundle contains a default set of implementations that represent galaxies in Stars! game [that's how Starmapper started - I used to be a Stars! junkie].