3D modeling

From apm
Jump to: navigation, search
This article is a stub. It needs to be expanded.

This page is about software tools with the purpose of 3D modelling for atomically precise molecular system.
Both ...

  • near term nanoscale atomically precise systems and ...
  • far term atomically precise systems reaching all the way up towards the macroscale.

This is about:

  • Core glue software combining existing tools together (Framework).
  • Establishing and expanding a collection of mutually compatible software tools.

One main goal here is to bring different types of structures together in the same workspace.
Such that they can be worked on together in a beneficial way.


This can greatly aid in ...

  • A) understanding what to aim at and ...
  • B) understanding how to build it. And analyze it.

These two types of work are both boosted and are mutually synergistic.

Following in flipped order since a majority of people are
working on the near term end of the spectrum.

Details to B)

  • analysis of results of experiments were different things/structures have been put together
  • planning of synthesis such that different things/structures will fit together

Details to A)

  • determining what things/structures to synthesize in order to arrive at more advanced systems ASAP
  • determining the potential high value goals/targets

Structures to bring together

Still beyond experimental reach as of 2022:

Inclusion of structures that are not yet accessible through physical experiments ...

... but are accessible through reliable robust (molecular dynamics) simulation.

This can be useful for guiding development efforts.See:

This kind of work only has to offer as product knowledge for directing R&D.
As such it has little to no immediate economic value and is hard to fund.
One possible way to get some of this done nonetheless may be gameification (as e.g. demonstrated in FoldIt).
With the right interface the activity of building advanced namomachinery structures can maybe be made into a fun and enjoyable spare-time activity game.

This can also provide excitement for young adults and motivation to go into a related field.
In this regard noteworthy though is the risk of detrimental over-excitement.
Emergence of a "fanboy/fangirl" culture nor clearly separating between

  • ideas serious proposed and by properly done low level exploratory engineering motivated and
  • ideas that are very much SciFi fantasies (like grey goo eating the whole biosphere in mere hours)

Can be more harming rather than helping.

Existing Software (focus on open source SW tools - but not exclusive)

(wiki-TODO: extend on these lists)


Bulk limit:

  • FreeCAD – Attempting to combine several other tools
  • OpenSCAD – programmatic denotative
  • ...

Modelling across a wide range of scales

Current software modelling tools are typically limited in the range of modellable scale
due to usage of floating point numbers of limited range.
It should be useful to lift that restriction.

For now while actual systems do not yet span many orders of magnitudes in size
this is mostly useful only for far term concept visualizations.
As technology will progress this will increasingly get relevant for physical experiments too.

While it may not seem urgent to solve now, if not solved early on then
ugly/fragile/dangerous hacks & workarounds may creep all the way into advanced systems of the future.
Not a nice prospect.

Programming language as core

It's pretty much necessary as scrip-table glue.
Going beyond just low performance scripting of huge high performance executed batch jobs seems quite desirable.
More on that further down.

Popular suggestion for a language to use is the python programming language.
A huge disadvantage (as with most of current mainstream languages) is
the lack of (type level) guarantees on absence of side-effects
(aka denotatveness, purity, immutable variables).
More on that further below.

As of 2022 other quite revolutionary languages are juts still far from ready yet unfortunately.
Content addressed programming language unison language.

Huge benefits of a denotative (aka purely functional) language

See: Relations of APM to purely functional programming

Just a few examples, in no way exhaustive:

  • No errors due to wrong orderings of code lines, as it is common in imperative code.
  • Easier debugging. No non-local bugs. Systematic narrowing down leads to finding the bug more reliably.
  • Can serve as a basis for projectional editing which can open up huge slew of more benefits
  • ...

A Framework that is none

Having many standalone tools and only afterwards gluing them together is kind of a Frankenstein/Jengatower situation.
The necessity of reuse of current tools mandates starting out with this kind of approach. But ...

Ideally the chosen glue language is both powerful (read:fast) and expressive (read:readable) enough such,
that it not only can serve as that (glue), but rather can also serve as basis for new "micro-tools".

That is: Beside old very useful (but due to their size is some ways limited)
monolithic batch processing monster software packages (like e.g. Rosetta)
sub-functionalities of new tools can be exposed much more fine-grainedly and user-friendly.
Think e.g.: Tangible values (Conal Elliott)
Think e.g.: No border between GUI applications.


External links

MSEP ... Molecular Systems Engineering Platform

Suggesting using Godot game engine as a core common base and adding python scripting glue.