Home My Page Projects Code Snippets Project Openings 3D graphics for Standard ML
Summary Activity SCM

SCM Repository

[sml3d] Log of /trunk/sml3d/src/particles
ViewVC logotype

Log of /trunk/sml3d/src/particles

View Directory Listing Directory Listing


Sticky Revision:

Revision 916 - Directory Listing
Modified Mon Jun 28 13:32:40 2010 UTC (9 years, 2 months ago) by jhr
  Adding opencl-gen.sml

Revision 915 - Directory Listing
Modified Tue Jun 22 22:13:22 2010 UTC (9 years, 2 months ago) by pavelk
Change the isDead state variable to a TTL. This way we can encode a lot more information into it. I haven't actually tested whether or not it works (just that it compiles)...


Revision 911 - Directory Listing
Modified Tue Jun 22 13:33:43 2010 UTC (9 years, 2 months ago) by jhr
  Added props field to block representation

Revision 908 - Directory Listing
Modified Mon Jun 14 17:21:15 2010 UTC (9 years, 3 months ago) by pavelk
Changed runtime variable lookup to constant time by using an array instead of a RB map. Increased max particle count from 7500 to 50000. Need to figure out other optimizations.

Revision 907 - Directory Listing
Modified Sat Jun 5 18:51:46 2010 UTC (9 years, 3 months ago) by pavelk
CPU implementation is working, although it's a bit slower than I'd like...

Revision 906 - Directory Listing
Modified Wed Jun 2 21:13:39 2010 UTC (9 years, 3 months ago) by pavelk
Switched program representation to not be a list of blocks. Rather, we reference just one block and use the tree representation when doing our analysis. Hence we now have a much more robust system for error checking, etc. Hopefully this fixes the problem of having inconsistencies between our blocks.

Revision 905 - Directory Listing
Modified Sun May 30 20:35:18 2010 UTC (9 years, 3 months ago) by pavelk
Working on CPU interpreter for particle system... weird bug.

Revision 904 - Directory Listing
Modified Fri May 28 21:30:33 2010 UTC (9 years, 3 months ago) by pavelk
Whoops, minor omission.

Revision 903 - Directory Listing
Modified Fri May 28 21:16:39 2010 UTC (9 years, 3 months ago) by pavelk
Fixed a few issues with setting global variables for our CPU interpreter.

Revision 902 - Directory Listing
Modified Fri May 28 19:24:05 2010 UTC (9 years, 3 months ago) by pavelk
Ugh, for now figure out which variables are which based on a naming convention. There's probably (read: definitely) a better way to do this by tagging each RETURN statement with the state variables that it returns.

Revision 901 - Directory Listing
Modified Fri May 28 19:15:30 2010 UTC (9 years, 3 months ago) by pavelk
Fix the deal with having the proper full list of state variables sent as block parameters.

Revision 900 - Directory Listing
Modified Fri May 28 19:02:43 2010 UTC (9 years, 3 months ago) by pavelk
More work on CPU interpreter for psys... few kinks to work out with global variables. Also, added secondary position state variable in case we want to do more complicated things...

Revision 899 - Directory Listing
Modified Fri May 28 07:01:21 2010 UTC (9 years, 3 months ago) by pavelk
CPU interpreter, WIP

Revision 877 - Directory Listing
Modified Thu May 6 20:24:53 2010 UTC (9 years, 4 months ago) by pavelk
Add a check to make sure that the referenced blocks are the same as the blocks in the list. Also, fix the block references after optimizing our program to adhere to the check. This will be useful when we analyze the program for code generation.

Revision 876 - Directory Listing
Modified Thu May 6 18:46:55 2010 UTC (9 years, 4 months ago) by pavelk
Simplified optimizeIR function.

Revision 875 - Directory Listing
Modified Thu May 6 18:26:37 2010 UTC (9 years, 4 months ago) by pavelk
Rearranged some of the compiler optimizations.

Revision 874 - Directory Listing
Modified Thu May 6 18:08:36 2010 UTC (9 years, 4 months ago) by pavelk
Added a new property to blocks: reference count. This new property is used in an optimization where we remove unused blocks from the program, and inline blocks that only have one reference count to reduce the amount of branching that we need to do.

Revision 873 - Directory Listing
Modified Wed May 5 20:18:00 2010 UTC (9 years, 4 months ago) by pavelk
Added a few primitives to handle a bit more lower level vector manipulation in order to expose a few more optimizations that we could perform in preparation for generating code for OpenCL. Most notably, we don't want to be doing things like calculating the dot product of basis vectors.

Also, added a new module for specialized optimizations on primitives which were made possible with the aforementioned newly added vector primitives.



Revision 871 - Directory Listing
Modified Fri Apr 30 21:17:38 2010 UTC (9 years, 4 months ago) by pavelk
Got UVE working.

Revision 870 - Directory Listing
Modified Fri Apr 30 17:21:32 2010 UTC (9 years, 4 months ago) by pavelk
Fix some formatting in the checker. I don't know why it's so hard for me to standardize my editors... Also, repurpose DISCARD to mean killing a particle so that we can possibly make some smarter optimizations. We can track non-state changes by seeing whether or not the particles change between the invocation of a block and leaving it.

Revision 869 - Directory Listing
Modified Fri Apr 30 16:42:34 2010 UTC (9 years, 4 months ago) by pavelk
Broke out the different optimizations into their own separate modules. The Optimizer now has more control over the order in which the optimizations are run, and the number of times each optimization is run.

Revision 868 - Directory Listing
Modified Thu Apr 29 22:39:32 2010 UTC (9 years, 4 months ago) by pavelk
Fix some formatting and make the optimizer take a whole program instead of a block list as an argument. The next step is to separate each of the optimizations into their own modules.

Revision 867 - Directory Listing
Modified Thu Apr 29 21:06:21 2010 UTC (9 years, 4 months ago) by pavelk
Added a newline to our program output so that it looks a lot neater... Also, there was a bug with the way we were handling predicate combinators. We need to save off the continuation, and then handle the then/else statements separately, and finally come together in the end. This way we can prevent code from blowing up unnecessarily.

Revision 866 - Directory Listing
Modified Thu Apr 29 20:16:27 2010 UTC (9 years, 4 months ago) by pavelk
IR translation now returns a program datatype, which has the emitter block separated from the physics block, and also keeps track of the rendering operation requested. Also, added property fields for variables and blocks in order to track for UVE.

Revision 864 - Directory Listing
Modified Wed Apr 28 17:21:18 2010 UTC (9 years, 4 months ago) by pavelk
Updated work on UVE. It now works the way I intended it to, although I think I may need to revisit my intentions.

Revision 863 - Directory Listing
Modified Tue Apr 27 23:09:18 2010 UTC (9 years, 4 months ago) by pavelk
UVE: work in progress...

Revision 862 - Directory Listing
Modified Tue Apr 27 01:27:39 2010 UTC (9 years, 4 months ago) by pavelk
Changed optimizations to run until they leave the program unchanged. Fleshed out UVE only to realize that I did it wrong, needs to be rethought. Fleshed out constant folding code, works pretty well.

Revision 859 - Directory Listing
Modified Sat Apr 24 00:34:50 2010 UTC (9 years, 4 months ago) by pavelk
Started work on useless variable elimination.

Revision 803 - Directory Listing
Modified Wed Mar 24 14:41:27 2010 UTC (9 years, 5 months ago) by jhr
  Tracking changes to sml3d library

Revision 773 - Directory Listing
Modified Tue Mar 2 05:12:30 2010 UTC (9 years, 6 months ago) by pavelk
Change PSVars that deal with vectors to take tuples to reduce code size.

Revision 771 - Directory Listing
Modified Tue Feb 23 22:38:17 2010 UTC (9 years, 6 months ago) by pavelk
Switched domain creation funtions to take record types instead of tuples.

Revision 770 - Directory Listing
Modified Mon Feb 22 00:17:15 2010 UTC (9 years, 6 months ago) by pavelk
Restructured some of the particles code to better fit the idea that we have for how it's supposed to work. Also, I moved the runtime code for the old psys into the new runtime module. Our example doesn't work properly anymore, since the old particle action system doesn't have a mechanism for specifying branches, so the particles never die.

Revision 769 - Directory Listing
Modified Mon Feb 15 22:52:36 2010 UTC (9 years, 7 months ago) by pavelk
Changed the way we define actions to be a list of combinators. This way we have support for if-then-else statements at a higher level and rendering operations (should we need them).

Revision 758 - Directory Listing
Modified Tue Feb 9 04:46:06 2010 UTC (9 years, 7 months ago) by pavelk
Optimized translation of SINK to avoid a branch. Changed reference counting in optimizer to go from top down rather than from the bottom up.

Revision 750 - Directory Listing
Modified Tue Feb 2 16:12:23 2010 UTC (9 years, 7 months ago) by jhr
  Added some comments

Revision 748 - Directory Listing
Modified Tue Feb 2 06:08:36 2010 UTC (9 years, 7 months ago) by pavelk
Whoops, forgot the optimization module.

Revision 747 - Directory Listing
Modified Tue Feb 2 06:07:28 2010 UTC (9 years, 7 months ago) by pavelk
Implemented some simple optimizations: removing unused variables and constant folding. Also, realized that there's no need for the CONST stmt, since variables are either constants by construction or they get optimized into such.

Revision 746 - Directory Listing
Modified Mon Feb 1 04:51:45 2010 UTC (9 years, 7 months ago) by pavelk
Moved syntax, type, and definitions checker into its own module, and they work over the whole program, not when the statements get created.

Revision 745 - Directory Listing
Modified Sun Jan 31 20:29:12 2010 UTC (9 years, 7 months ago) by pavelk
Updated translate to reflect the new changes to our IR.

Revision 744 - Directory Listing
Modified Thu Jan 28 16:00:26 2010 UTC (9 years, 7 months ago) by jhr
  Added useCount to variables and binding info for locals

Revision 743 - Directory Listing
Modified Tue Jan 26 07:06:45 2010 UTC (9 years, 7 months ago) by pavelk
Minor code tweak because I'm OCD.

Revision 742 - Directory Listing
Modified Tue Jan 26 07:02:31 2010 UTC (9 years, 7 months ago) by pavelk
When checking a goto statement, make sure that the arguments match the block parameters.

Revision 741 - Directory Listing
Modified Tue Jan 26 06:22:28 2010 UTC (9 years, 7 months ago) by pavelk
Fix support for variables that need to persist via blocks, i.e. give blocks more arguments than just the particle state variables.

Revision 740 - Directory Listing
Modified Tue Jan 26 05:52:37 2010 UTC (9 years, 7 months ago) by pavelk
Got a working type checker and a post-compile check to make sure that all of the variables that we reference are defined.

Revision 730 - Directory Listing
Modified Sat Jan 23 17:11:31 2010 UTC (9 years, 7 months ago) by pavelk
Update runtime sig, rename some of the files to better reflect what they represent.

Revision 729 - Directory Listing
Modified Sat Jan 23 16:40:22 2010 UTC (9 years, 7 months ago) by pavelk
Restructured some code, added beginning of runtime signature, example now spits out IR before running the example...

Revision 705 - Directory Listing
Modified Tue Jan 19 15:42:34 2010 UTC (9 years, 7 months ago) by jhr
  Updates to particle-system code

Revision 688 - Directory Listing
Modified Tue Jan 12 14:14:53 2010 UTC (9 years, 8 months ago) by jhr
  Fix indentation

Revision 687 - Directory Listing
Modified Tue Jan 12 05:55:53 2010 UTC (9 years, 8 months ago) by pavelk
Finished up example using old psys. Implented orbit line seg in new IR

Revision 686 - Directory Listing
Modified Tue Jan 5 15:27:17 2010 UTC (9 years, 8 months ago) by jhr
  Fixing indentation

Revision 685 - Directory Listing
Modified Tue Jan 5 15:21:05 2010 UTC (9 years, 8 months ago) by jhr
  Bug fix

Revision 672 - Directory Listing
Modified Mon Jan 4 00:57:24 2010 UTC (9 years, 8 months ago) by pavelk
Working on getting an example functioning using the new action system.

Revision 616 - Directory Listing
Modified Tue Dec 22 05:56:50 2009 UTC (9 years, 8 months ago) by pavelk
Work on translate.sml

Revision 611 - Directory Listing
Modified Tue Dec 15 15:41:36 2009 UTC (9 years, 9 months ago) by jhr
  Started to switch to using letPRIM in translations

Revision 610 - Directory Listing
Modified Tue Dec 15 15:41:20 2009 UTC (9 years, 9 months ago) by jhr
  Added NEG and NORM primops

Revision 609 - Directory Listing
Modified Tue Dec 15 14:17:53 2009 UTC (9 years, 9 months ago) by jhr
  Added letPRIM helper function

Revision 608 - Directory Listing
Modified Tue Dec 15 04:25:52 2009 UTC (9 years, 9 months ago) by jhr
  Fixed indentation

Revision 607 - Directory Listing
Modified Tue Dec 15 01:44:12 2009 UTC (9 years, 9 months ago) by pavelk
Move normalizing vectors into a separate function in order to trim down code size.

Revision 606 - Directory Listing
Modified Mon Dec 14 05:13:25 2009 UTC (9 years, 9 months ago) by pavelk
Fixed incorrect comment

Revision 605 - Directory Listing
Modified Mon Dec 14 05:12:57 2009 UTC (9 years, 9 months ago) by pavelk
Finished preliminaries for translation. We have the materials to construct the old example. Next we need to debug everything... =(

Revision 604 - Directory Listing
Modified Sun Dec 13 21:31:10 2009 UTC (9 years, 9 months ago) by pavelk
Work on IR.

Revision 583 - Directory Listing
Modified Fri Dec 11 16:30:15 2009 UTC (9 years, 9 months ago) by jhr
  Track changes to base signatures

Revision 576 - Directory Listing
Modified Tue Dec 8 16:19:38 2009 UTC (9 years, 9 months ago) by jhr
  Working on translation to IR

Revision 575 - Directory Listing
Modified Tue Dec 8 04:47:46 2009 UTC (9 years, 9 months ago) by pavelk
Fleshed out a few more definitions for some action datatypes. Added a function that translates PSVars to IRVars. Implemented translation of "gravity" action \(although it was mostly similar to move.\)

Revision 548 - Directory Listing
Modified Tue Dec 1 15:28:19 2009 UTC (9 years, 9 months ago) by jhr
  Fixing up new particle-system code

Revision 547 - Directory Listing
Modified Tue Dec 1 06:30:16 2009 UTC (9 years, 9 months ago) by pavelk
Moved old particle system implementation into separate files, and updated the new ones to support our new version of particle systems. Unfortunately I don't know whether or not it compiles since we don't have any examples that use this new system.

Revision 539 - Directory Listing
Modified Tue Nov 24 15:47:22 2009 UTC (9 years, 9 months ago) by jhr
  Add blocks and smart constructors to IR

Revision 517 - Directory Listing
Modified Tue Nov 17 15:58:42 2009 UTC (9 years, 10 months ago) by jhr
  Code cleanup

Revision 516 - Directory Listing
Modified Tue Nov 17 14:21:26 2009 UTC (9 years, 10 months ago) by jhr
  Code cleanup

Revision 515 - Directory Listing
Modified Tue Nov 17 04:32:50 2009 UTC (9 years, 10 months ago) by pavelk
Added an infrastructure for the compilation process, used MOVE as a prototype.

Revision 501 - Directory Listing
Modified Tue Nov 3 15:46:36 2009 UTC (9 years, 10 months ago) by jhr
  Working on translation

Revision 500 - Directory Listing
Modified Tue Nov 3 15:21:48 2009 UTC (9 years, 10 months ago) by jhr
  Remove signature for IR

Revision 499 - Directory Listing
Modified Tue Nov 3 14:02:09 2009 UTC (9 years, 10 months ago) by jhr
  Renaming to match coding conventions

Revision 498 - Directory Listing
Modified Sun Oct 25 03:32:49 2009 UTC (9 years, 10 months ago) by pavelk
Broke out particle IR into its own module.

Revision 497 - Directory Listing
Modified Sun Oct 18 03:28:10 2009 UTC (9 years, 11 months ago) by jhr
  Fixed indentation

Revision 496 - Directory Listing
Modified Wed Oct 14 05:23:53 2009 UTC (9 years, 11 months ago) by pavelk
Whoops, forgot this with the last change.

Revision 495 - Directory Listing
Modified Wed Oct 14 05:19:05 2009 UTC (9 years, 11 months ago) by pavelk
Added a first pass at datastructures for an internal representation of our particle systems.

Revision 489 - Directory Listing
Modified Sat Sep 26 17:38:27 2009 UTC (9 years, 11 months ago) by pavelk
Fixed bugs associated with OrbitLine. Looks pretty cool now.

Revision 487 - Directory Listing
Modified Thu Sep 24 06:19:20 2009 UTC (9 years, 11 months ago) by pavelk
Added PSysOrbitLineSeg. Work in progress...

Revision 486 - Directory Listing
Modified Thu Sep 24 00:30:05 2009 UTC (9 years, 11 months ago) by pavelk
Make psysenv its own type instead of having to refer to PSYSENV.set all the time.

Revision 485 - Directory Listing
Modified Wed Sep 23 06:44:25 2009 UTC (9 years, 11 months ago) by pavelk
Started the use of red-black trees, although it could be a bit cleaner. May have ruined indentation again (did my best not to...)

Revision 483 - Directory Listing
Modified Tue Sep 22 04:33:05 2009 UTC (9 years, 11 months ago) by jhr
  Put modules in their own files and fix indentation

Revision 477 - Directory Listing
Modified Fri Sep 4 05:27:09 2009 UTC (10 years ago) by pavelk
Implemented particle example using new interface. Getting ready to move to GPUs

Revision 476 - Directory Listing
Modified Wed Sep 2 03:03:51 2009 UTC (10 years ago) by pavelk
Adding preliminary definion for a PSysVar

Revision 475 - Directory Listing
Modified Thu Jun 4 20:50:23 2009 UTC (10 years, 3 months ago) by pavelk
Fixed build. Price of not having MLton on the macLab machines =(

Revision 474 - Directory Listing
Modified Thu Jun 4 20:41:40 2009 UTC (10 years, 3 months ago) by pavelk
Added documentation to particles-sig.sml, updated README

Revision 466 - Directory Listing
Modified Fri May 29 23:13:49 2009 UTC (10 years, 3 months ago) by pavelk
Fixed a bug which prevented count from being decremented when particles dies. Sped up performance by not updating the buffers after every action.

Revision 465 - Directory Listing
Modified Fri May 29 22:51:06 2009 UTC (10 years, 3 months ago) by pavelk
Changed actions to be particle->particle types. Vertex information (color and position) now resides in fixed buffers.

Revision 464 - Directory Listing
Modified Wed May 27 18:22:16 2009 UTC (10 years, 3 months ago) by pavelk
Updated preliminary code to support color buffers and fix memory problem.

Revision 463 - Directory Listing
Modified Sun May 24 14:43:38 2009 UTC (10 years, 3 months ago) by jhr
  Don't render when there are no particles.

Revision 458 - Directory Listing
Modified Fri May 22 23:34:02 2009 UTC (10 years, 3 months ago) by pavelk
First attempt at using vertex buffers to render the particles, ran into some sort of exception on Linux. Added geyser to top-level makefile.

Revision 438 - Directory Listing
Modified Fri May 1 22:04:01 2009 UTC (10 years, 4 months ago) by pavelk
Added bounce. Needs tuning.

Revision 437 - Directory Listing
Modified Wed Apr 29 14:29:14 2009 UTC (10 years, 4 months ago) by pavelk
Added sink action. Example now has something interesting on a loop.

Revision 436 - Directory Listing
Modified Wed Apr 29 02:25:01 2009 UTC (10 years, 4 months ago) by pavelk
Updated random generation of points in a disc. I believe that this is correct, although not as efficient as can be since it involves a square root.

Revision 435 - Directory Listing
Modified Tue Apr 28 05:00:54 2009 UTC (10 years, 4 months ago) by pavelk
Added gravity action and a few domain generator implmentations. The disc needs to be reworked, it's not even close to uniform.

Revision 434 - Directory Listing
Modified Mon Apr 27 19:59:42 2009 UTC (10 years, 4 months ago) by jhr
  Minor fixes and code cleanup

Revision 433 - Directory Listing
Modified Mon Apr 27 18:52:17 2009 UTC (10 years, 4 months ago) by pavelk
Changed particle render size to its velocity, otherwise it was too small\!

Revision 430 - Directory Listing
Modified Mon Apr 27 18:29:19 2009 UTC (10 years, 4 months ago) by jhr
  MLB file cleanup

Revision 429 - Directory Listing
Modified Mon Apr 27 15:10:27 2009 UTC (10 years, 4 months ago) by pavelk
First pass at new implementation of particle systesm using David Mcallister's API

Revision 292 - Directory Listing
Modified Tue Sep 30 07:54:18 2008 UTC (10 years, 11 months ago) by jhr
repository restructuring

Revision 279 - Directory Listing
Modified Sun Sep 28 15:19:32 2008 UTC (10 years, 11 months ago) by jhr
Original Path: src/particles
  fix comment

Revision 38 - Directory Listing
Modified Thu Mar 13 14:30:45 2008 UTC (11 years, 6 months ago) by jhr
Original Path: src/particles
  Merged math library into common

Revision 1 - Directory Listing
Added Fri Dec 29 22:12:14 2006 UTC (12 years, 8 months ago) by jhr
Original Path: src/particles
  Create initial repository

Sort log by:

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0