All Projects → pallada-92 → Dna 3d Engine

pallada-92 / Dna 3d Engine

Licence: gpl-3.0
3d engine implementation in DNA code!

Projects that are alternatives of or similar to Dna 3d Engine

Tiny Renderer
A tiny sotfware 3D renderer in 100 lines of Python
Stars: ✭ 120 (-75.66%)
Mutual labels:  3d, 3d-engine
BuddySuite
Bioinformatics toolkits for manipulating sequence, alignment, and phylogenetic tree files
Stars: ✭ 106 (-78.5%)
Mutual labels:  biology, dna
Layaair discard
This is old LayaAir veriosn writetten by ActionScript 3.0 ,now LayaAir is using TypeScript as the Engine Script,Please use https://github.com/layabox/LayaAir instead.
Stars: ✭ 1,858 (+276.88%)
Mutual labels:  3d, 3d-engine
Helixjs
A Javascript 3D game engine.
Stars: ✭ 84 (-82.96%)
Mutual labels:  3d, 3d-engine
React Babylonjs
React for Babylon 3D engine
Stars: ✭ 299 (-39.35%)
Mutual labels:  3d, 3d-engine
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+316.63%)
Mutual labels:  3d, 3d-engine
Repo-Bio
Binomica Public Repository for Biological Parts
Stars: ✭ 21 (-95.74%)
Mutual labels:  biology, dna
Assetkit
🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also called (AssetIO)
Stars: ✭ 97 (-80.32%)
Mutual labels:  3d, 3d-engine
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-43.61%)
Mutual labels:  3d, 3d-engine
Bio.jl
[DEPRECATED] Bioinformatics and Computational Biology Infrastructure for Julia
Stars: ✭ 257 (-47.87%)
Mutual labels:  biology, dna
Helix Toolkit
Helix Toolkit is a collection of 3D components for .NET.
Stars: ✭ 1,050 (+112.98%)
Mutual labels:  3d, 3d-engine
Lume
Create CSS3D/WebGL applications declaratively with HTML. Give regular DOM elements shadow and lighting.
Stars: ✭ 445 (-9.74%)
Mutual labels:  3d, 3d-engine
pydna
Clone with Python! Data structures for double stranded DNA & simulation of homologous recombination, Gibson assembly, cut & paste cloning.
Stars: ✭ 109 (-77.89%)
Mutual labels:  biology, dna
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-96.15%)
Mutual labels:  3d, 3d-engine
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-32.86%)
Mutual labels:  3d, 3d-engine
Exengine
A C99 3D game engine
Stars: ✭ 391 (-20.69%)
Mutual labels:  3d, 3d-engine
Island
🌋🐎 Project Island is an experimental, hot-reloading Vulkan renderer/proto-engine for Linux, written in C/C++.
Stars: ✭ 441 (-10.55%)
Mutual labels:  3d-engine
Chainer Chemistry
Chainer Chemistry: A Library for Deep Learning in Biology and Chemistry
Stars: ✭ 462 (-6.29%)
Mutual labels:  biology
Biojs
🔬A library of JavaScript components to represent biological data
Stars: ✭ 438 (-11.16%)
Mutual labels:  biology
Vue Gl
Vue.js components rendering 3D WebGL graphics reactively with three.js
Stars: ✭ 434 (-11.97%)
Mutual labels:  3d

CubeCRN logo

cube3d.dna

The most advanced and compact 3d engine ever implemented in DNA code.

environment: in vitro platform: DNA | TMSD license: GPL-v.3.0+
lint status tests status coverage total lines bundle size


Getting started

How to deploy

  1. Synthesize the oligonucleotides from the cube3d.dna file.
  2. Arrange the test tubes as shown in the diagram below.
  3. Don't forget to provide the initial concentrations according to the table below.
  4. Use a pipette to encode the position (row and column) of each tube to start the computation.
Environment variables
q = 0.01
cxtm = 0.606
axp = 0.606
cytm = 0.898
ayp = 0.898
cztm = 1.243
azp = 1.243
mxyzm = 0.3
nx = 0.036 + 0.555 Col + 0.147 Row
ny = 0.853 + -0.517 Row
nz = 0.737 + -0.270 Col + 0.302 Row

Testing

  1. Pick the fluorophore of your favorite color and attach it to the Strand R0, so that it activates when the R species are being produced.
  2. Use a light source with a specific wavelength (depending on the fluorophore you've chosen) to render the result.

Disclaimer: perhaps it would not be a good idea to try this experiment in a real lab, because it will cost you a lot of money and most likely won’t work as intended the first time.

Ports to other languages

Gallery


Ray marching common implementation

Ray marching differential form used here

Simplified animation of the toehold mediated strand displacement technique (based on supplementary materials from [2])


The types of oligonucleotides required for a single reaction (based on supplementary materials from [2])

Data flow graph of the JS implementation.

Species interaction graph of this implementation.


Unminified source code of this implementation which just comprises plain reactions with a few macros. The minifier was written in Wolfram Language specially for this project.



CRN++ source code for comparison (CRN++ is not used in this implementation).


10 reactions after the minification used in this project. Since the piperine compiler doesn't support more than 2 products on the right-hand side, the reactions were split.



CRN++ 70 reactions output for comparison (CRN++ is not used in this implementation).

Building from source

  1. Install the piperine compiler by the DNA and Natural Algorithms Group.
  2. Run the following command
piperine-design cube3d.crn --maxspurious 0.765
  1. Wait 2-3 hours for the compilation results.

References

  1. David Soloveichik, Georg Seelig and Erik Winfree
    DNA as a universal substrate for chemical kinetics
    Proceedings of the National Academy of Sciences Mar 2010, 107 (12) 5393-5398; DOI: 10.1073/pnas.0909380107

  2. Niranjan Srinivas, James Parkin, Georg Seelig, Erik Winfree and David Soloveichik
    Enzyme-free nucleic acid dynamical systems
    Science 358, eaal2052 (2017).
    Some images were taken from supplementary materials

  3. Chalk, Cameron, Niels Kornerup, Wyatt Reeves, and David Soloveichik.
    Composable rate-independent computation in continuous chemical reaction networks.
    International Conference on Computational Methods in Systems Biology, pp. 256-273. Springer, Cham, 2018.

  4. Chen, Ho-Lin, David Doty, and David Soloveichik.
    Rate-independent computation in continuous chemical reaction networks.
    Proceedings of the 5th conference on Innovations in theoretical computer science. 2014.

  5. Marko Vasic, David Soloveichik and Sarfraz Khurshid
    CRN++: Molecular Programming Language
    Natural Computing (2020) 19:391–407 DOI: 10.1007/s11047-019-09775-1
    CRN++ on GitHub

  6. Inigo Quilez
    https://www.iquilezles.org/www/index.htm
    Introduction to Raymarching Signed Distance Functions

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].