bergwerf / bromium Goto Github PK
View Code? Open in Web Editor NEWEngine for simulating reactions using Brownian motion
Home Page: https://www.hermanbergwerf.com/bromium-deploy/
License: GNU Affero General Public License v3.0
Engine for simulating reactions using Brownian motion
Home Page: https://www.hermanbergwerf.com/bromium-deploy/
License: GNU Affero General Public License v3.0
Although float32
is the underlying type to store exact particle coordinates and uint16
is the underlying type to store voxel positions. It is more straightforward if all functions that are specialized to handle a specific type are named using this point/voxel distinction. Example: Domain.containsPoint
and Domain.containsVoxel
instead of Domain.containsFloat
and Domain.containsUint16
. The BromiumData.useIntegers
boolean and related namings should be converted to useUint16
.
Benchmarking should support the following features:
dart2js
and d8
for realistic JavaScript benchmarksThere are many possible exceptions (especially in the fixed data buffer). Therefore there should be a special BromiumException
for exception handling within bromium.
Run-time information such as buffer resizes and particle allocation should be logged (selectively).
It is possible to run some parts of the simulation in parallel on the GPU using WebGL (great talk on this subject: https://vimeo.com/97329154).
Until now there have been two ways to represent the particle position: unsigned 16 bit integers and 32 bit floats. The floats were originally there to allow simulations with more precision, however, they have added a lot of complexity and confusion to the code. The 3 x uint16
positions were originally intended to represent a voxel position so the particle position does not have to be converted to a voxel position every step (note that uint16
is almost the largest type that is suitable for this because the voxel position and type have to be hashed into a 64 bit integer). However, to keep things simple we're going to move to unsigned 32 bit integers. The ability to omit voxel position computation and particle distance computation (by using voxel groups instead of square roots) can still be maintained by setting each voxel to contain only one particle position. Voxels can also contain more particle positions to increase precision.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.