Jesus fuck is that a raymarcher implemented in dna?! Super impressive.
For the naysayers: they've implemented a raytracer in chemical reactions that are executed by dna. Very cool conceptual piece. See linked images, eg (sorry for pasting this horrible url)
I don't get it. What do they mean by "3D engine implemented in DNA code"?
> Synthesize the oligonucleotides from the cube3d.dna file.
OK, so you get a long list of oligonucleotides ordered and shipped. Sounds prohibitively expensive, I guess this is a thought experiment or simulation exercise?
> Arrange the test tubes as shown in the diagram below.
OK, Get a microplate with 384 wells (== test tubes).
> Don't forget to provide the initial concentrations according to the table below.
Dump an oligonucleotide solution into each well? According to what table? There is no "table below". Which oligonucleotide in which well?
> Use a pipette to encode the position (row and column) of each tube to start the computation.
A pipette is used to dispense fluid. How does a pipette "encode position"?? Start what computation?
Yes, this is more like a thought experiment and it will require lots of efforts and money to realize it smoothly in a wet lab.
However, it is far more realizable than some other DNA implementations described in papers.
The idea to publish DNA code on GitHub with CI, tests, linters, badges etc. is obviously a form of joke, but the project itself was done like a serious applied maths research.
>OK, Get a microplate with 384 wells (== test tubes).
Why 384? You could get any amount you want, you'd just have to modify the coefficients for row and column accordingly (linear increase with decrease of number per axis).
Imagine if you'd skip every other row and column, the image would still be the same, just lower resolution.
> According to what table? There is no "table below".
CTRL-F environment variables. Click on that.
>A pipette is used to dispense fluid. How does a pipette "encode position"?? Start what computation?
???
The concentrations are determined by row and column, thus encode position.
384 well plates (16x24) are one of the “standard” sizes and the densest that a typical lab is likely to have on-hand. The next size up/down (fewer, bigger wells) is probably 96 wells in an 8x12 grid.
1) The answer is both yes and no. Any particular digital circuit can be implemented, but not universal Turing machine, simply because there is no way to deal with arrays.
> simply because there is no way to deal with arrays.
I wouldn't be so quick to make that call. That we don't know how to do it does not mean it can't be done and there is some weak evidence (innate knowledge) that nature has indeed found a way to do this, just that we don't understand it.
Reading a machine translated version of the Russian article linked from GitHub (that seems far more complete) the author mentions RNA can behave like NOR gates, so all other gates must be possible as well
yes, DNA is turing complete. all of the basic circuits can be implemented.Unfortunately, practically speaking it's hard to scale these up to be "useful" (competitive with modern CPUs or hard drives).
Yes, I've made CRN++ version as well (in this pull request: https://github.com/marko-vasic/crnPlusPlus/pull/1), but it required much more reactions and was less stable. So I decided to make it from scratch by using different approach.
This is a lot of fluff for making a static picture from DNA fluorescence. There is nothing being rendered here in the tubes, it's just adding varying amounts of DNA to tubes arranged in a grid.
That's not how this works. The computation is done in tubes via chemical reactions. The inputs (column and row) are specified by providing a variable concentration of two input solutions to the same base solution which encodes the ray marching algorithm. The scene is static, but you can theoretically sample it at arbitrary points and resolutions by varying the inputs.
Each tube renders/computes a "pixel". The concentrations are not proportional to brightness, but instead linearly correspond to x / y position of the pipettes.
For the naysayers: they've implemented a raytracer in chemical reactions that are executed by dna. Very cool conceptual piece. See linked images, eg (sorry for pasting this horrible url)
https://camo.githubusercontent.com/d4d44c19070cc6ae2ab5f5ef3...
(Edit nevermind that, check the link posted by dkural for some more details)