I started doing an example on the basis of your first example picture, but hopefully you can adapt the ideas.
When constructing TikZ figures, I often find the libraries matrix and chains very helpful. And also thinking about the picture one small piece at a time.
So while waiting for our resident TikZ-deity Jake to show up with something much more elegant, I'd like to present my take on the first example picture (Plain-TeX):
\input tikz
\let\up\uparrow \let\down\downarrow % just to shorten a little
\usetikzlibrary{chains,matrix}
\tikzpicture[
a/.style={on chain,join,draw,rounded corners,minimum size=1.5em,inner sep=1pt},
r/.style={a,text=red},
every scope/.style={start chain,node distance=1mm}
]
\matrix[matrix of nodes,column sep=1.5em,row sep=1.5ex] (mx) {
&\scope[xshift=1em]\coordinate[a](A);
\node[a,label=below:$\sigma_\rho^*$]{};
\coordinate[a](C);\endscope\\
&\scope\coordinate[a](D);
\node[r,label=below:$\pi_x^*$]{$\up$};
\node[r,label=below:$\pi_y^*$]{$\up$};
\coordinate[a](G);\endscope\\
\scope\node[a]{$\up$}; \node[a]{$\up$}; \node[a]{$\up\,\down$};
\coordinate[a](H);\endscope&&
\scope\coordinate[a](I);
\node[a]{$\up\,\down$}; \node[a]{$\down$}; \node[a]{$\down$};\endscope\\
&\scope\coordinate[a](J);
\node[a,label=below:$\pi_x$]{$\up\,\down$};
\node[a,label=below:$\pi_y$]{$\up\,\down$};
\coordinate[a](K);\endscope\\
&\scope[xshift=1em]\coordinate[a](L);
\node[a,label=below:$\sigma_\rho$]{$\up\,\down$};
\coordinate[a](N);\endscope\\
};
\draw (H)--(A) (H)--(D) (H)--(J) (H)--(L)
(I)--(C) (I)--(G) (I)--(K) (I)--(N);
\endtikzpicture
\bye
I think you could separate the drawing of the chain to outside of the matrix, and be able to branch things.
First off, you may not want to use LaTeX directly if you want to use it as a whiteboard to develop ideas. You may be better off using Org-mode to draft your paper. You can embed LaTeX in Org-mode and you will probably be more effective than using LaTeX directly. The details on using Org-mode for drafting are not hard to learn, especially if you already use Emacs. Since Org-mode stores files as plain text they can be tracked with version control.
I use git to track some documents I work on and I mostly use it as a safety net. Knowing that every change I do may be recovered is great because I can make big changes to documents without being afraid of losing anything.
When using version control privately, i.e. you are the only one who commits, it may be thought of as using a system to name groups of changes to documents. So to use it effectively you should make changes of one type or to a particular part of your document and describe the change accordingly in the commit message, e.g. commit after you made a couple of changes to your introduction and make another commit for the changes of your conclusion instead of one commit for everything. However you should not be too pedantic with version control, it should not take over your primary work of writing the text. It is more important that you work effectively and write a good text than that you make the most appropriate commits.
My typical work flow is that I make a repository only after I have document with some substantial content. Then I branch off the master by making a dev branch. I commit all new changes to the dev branch and when I have read the whole document or come to a particular stage at which the document is more stable, e.g. when I turn it into my supervisor, I merge the changes in dev to the master. Then for any new changes I branch into a deb branch again. I also use the tag feature of git to mark particular stages, e.g. a version I sent to someone, which makes it easier to find those stages if I need.
To view changes I use different tools. I both use giggle, tig and git log
to see the history of a repository. To compare versions I mostly use meld.
Use one type of project per repository. Grouping things that do not belong together is confusing. Branching is good for making different version of a document, e.g. to split a project into an article and a presentation.
Finally, here is what inspired me to start using version control: http://www.charlietanksley.net/philtex/using-a-version-control-system/
Best Answer
TikZ should be pretty useful doing this. It's a package to 'draw' stuff in latex. I tried replicating your picture, there are still some rough edges, but it looks pretty nice I think.
which looks like
I would normally name the styles according to their uses, but since I have no idea what the diagram represents, I just named them according to their styles. The rotation is still missing, I'm trying to get that right though ;)
EDIT:
I got rotation etc. to work. Since the syntax is a little bit harder to read, I thought I would define a command for the nodes in the graph. I also fixed the text height for the 'captions', so that the ugly offset of the text is now gone. It's just the upper part that's changed, but in spirit of providing a MWE I also copied the rest of the code again: