For those of you that are not on Slack, I'm TheCreator and I have recently been self-assigned the tenuous task of designing the cell membrane. Having only taken one Java programming class up to date, I am mostly self-taught, so I cannot make any promises, but I will do my best to make an amazing membrane.
Also from the Slack discussion, I originally thought this was a super simple task. I mean, I can easily draw a curve around a bunch of hexagons, how hard can it be to make a computer do this? Well, it is very hard—apparently computers are incredibly dumb. Eventually after many painstakingly long hours (my laptop says I spent 6 hours on this prototype ) I managed to create a bunch of points based on the arrangement of the organelles that the computer only needs to connect. I thought the hard part was behind me. I was wrong again. Computers need the points to be located in a specific pattern before they can connect them. This led to me spending two more hours writing an algorithm that could put order to disorganized points and then connect them. Here are the results.
My current prototype is in 2D and uses a combination of bezier curves and precomputed slopes to draw the membrane. This means that the membrane can be scaled infinitely and it will still look good. After a bit more cleaning up I will rewrite my code to work in 3D (probably using bezier surfaces) and eventually will add color using OpenGL shaders.
For now I will refrain from going deep into technical stuff and will simply ask you guys a question: Which of the following images looks the best? I made it wavy and cell-like, but now that I think about it looks too much like a fish and too little like a microorganism, so I will try to get rid of them and edit in another image.
The small circles in the center are the organelles and the big one is the nucleus.
EDIT: Apparently the waviness was caused by a bug (unless you guys like it, then it could become a feature). So here is the new version:
Is everyone fine with this? In that case, I have an important question for @crovea: how exactly do you want me to output the points for my 3D membrane? Should I attempt to put it into .obj format or is there an easier/more preferred way?
Another question for @Oliveriver, you wanted the membrane to be flexible and moveable. By moving the control points for the bezier curves, you can change the membrane a bit. Is this enough, or did you want something else?
All comments and critiques welcome!