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 1240 - Directory Listing
Modified Tue Oct 4 16:11:29 2011 UTC (7 years, 10 months ago) by pavelk
Added some syntactic sugar for common emitters and point renderers.

Revision 1196 - Directory Listing
Modified Sun Jul 17 02:25:11 2011 UTC (8 years, 1 month ago) by pavelk
Make sure to require specification of user-defined state variables in our emitters.

Revision 1191 - Directory Listing
Modified Wed Jul 13 13:10:49 2011 UTC (8 years, 1 month ago) by jhr
  Working on OpenCL support for particles

Revision 1180 - Directory Listing
Modified Wed Jun 29 15:34:03 2011 UTC (8 years, 1 month ago) by jhr
  Switch variable and block IDs to be words (instead of ints).

Revision 1178 - Directory Listing
Modified Tue Jun 28 14:44:05 2011 UTC (8 years, 1 month ago) by jhr
  Working on OpenCL code generation.

Revision 1175 - Directory Listing
Modified Wed Jun 22 05:12:13 2011 UTC (8 years, 2 months ago) by pavelk
Whoops, forgot to add some files.

Revision 1174 - Directory Listing
Modified Wed Jun 22 05:11:38 2011 UTC (8 years, 2 months ago) by pavelk
Change global variable bindings to be passed at both compile time and run time.

Revision 1169 - Directory Listing
Modified Wed Jun 8 05:28:34 2011 UTC (8 years, 2 months ago) by pavelk
Fixed triangle intersection test.

Revision 1168 - Directory Listing
Modified Fri Jun 3 17:59:14 2011 UTC (8 years, 2 months ago) by pavelk
Updated README

Revision 1167 - Directory Listing
Modified Fri Jun 3 17:59:00 2011 UTC (8 years, 2 months ago) by pavelk
Added line, rect, and triangle intersection tests

Revision 1166 - Directory Listing
Modified Tue May 31 16:45:25 2011 UTC (8 years, 2 months ago) by pavelk
Added sphere intersection tests.

Revision 1163 - Directory Listing
Modified Mon May 23 01:31:57 2011 UTC (8 years, 3 months ago) by pavelk
Fixed the textured quad renderer.

Revision 1162 - Directory Listing
Modified Sun May 22 22:10:45 2011 UTC (8 years, 3 months ago) by pavelk
Removed one of the TODOs because I did it.

Revision 1161 - Directory Listing
Modified Sun May 22 22:10:17 2011 UTC (8 years, 3 months ago) by pavelk
Fixed random distribution for non-zero inner radius discs (rings).

Revision 1160 - Directory Listing
Modified Sun May 22 21:55:20 2011 UTC (8 years, 3 months ago) by pavelk
* Added a new primitive: ACOS. It's the arc cosine function.
* Fixed a bug where in generating points in a disc, if the vector to the center of the disc was parallel to the normal, the points would only be generated at the center.
* Added implementations for generating vectors within the remaining domains. Generating a vector within a plane results in an error due to the domain being unbounded.
* Removed the "blob" domain as it has no use outside of generating points, but this effect can be simulated by providing different random distributions to the generation routine. (Not implemented yet)
* Updated the README to reflect changes.


Revision 1159 - Directory Listing
Modified Sat May 21 22:08:20 2011 UTC (8 years, 3 months ago) by pavelk
Filled out a few more particle actions, and updated the README.

Revision 1158 - Directory Listing
Modified Thu May 19 02:08:17 2011 UTC (8 years, 3 months ago) by pavelk
Fix some hard to track bugs.

Revision 1155 - Directory Listing
Modified Tue May 10 04:56:42 2011 UTC (8 years, 3 months ago) by pavelk
Fix a few more minor bugs.

Revision 1154 - Directory Listing
Modified Tue May 10 04:15:07 2011 UTC (8 years, 3 months ago) by pavelk
Move some messages to debug. Realized that the physics bugs I mentioned in the last commit are actually feature requests. Also, the textured quads rendering is not working properly.

Revision 1153 - Directory Listing
Modified Tue May 10 04:07:02 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a bunch of bugs. Finally got something rendering. Time to track down why the physics is broken. =)

Revision 1152 - Directory Listing
Modified Sun May 8 08:55:38 2011 UTC (8 years, 3 months ago) by pavelk
Remove some unnecessary output junk.

Revision 1151 - Directory Listing
Modified Sun May 8 00:54:41 2011 UTC (8 years, 3 months ago) by pavelk
Introduced the MAX, MIN, MIX, and CLAMP operations to the psys IR. Used these to optimize the norm-at-point for planes to avoid the branch.

Revision 1150 - Directory Listing
Modified Sat May 7 23:19:46 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few issues with UVE... we need to actually copy the vars when we do a goto, otherwise uselessness gets propagated incorrectly.

Revision 1149 - Directory Listing
Modified Sat May 7 19:14:12 2011 UTC (8 years, 3 months ago) by pavelk
Fix small typo.

Revision 1148 - Directory Listing
Modified Fri May 6 06:46:41 2011 UTC (8 years, 3 months ago) by pavelk
Random point in disc generation requires you to take a sqrt not a square.

Revision 1147 - Directory Listing
Modified Fri May 6 06:39:09 2011 UTC (8 years, 3 months ago) by pavelk
Changed the plane normal vector calculation. Also, got rid of the notion of particle state, and made it so that block parameters are passed through an environment that keeps track of particle state variable to IR variable mappings.

Revision 1146 - Directory Listing
Modified Wed May 4 21:06:27 2011 UTC (8 years, 3 months ago) by pavelk
Changed the way we look for a normal at a given point. In trying to get rid of a branch, I realized that it created a potential divide by zero, so I just restructured it to use less instructions.

Revision 1143 - Directory Listing
Modified Wed May 4 03:50:40 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few bugs in UVE. Made sure that all of the optimizations work. The next step is to debug the CPU runtime environment to make sure that everything still works.

Revision 1140 - Directory Listing
Modified Mon May 2 06:00:36 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few bugs. Namely, figured out how to get state passed through expression translation. Also made unused variable optimization better by eliminating block arguments if we weren't using them.

Revision 1139 - Directory Listing
Modified Mon May 2 00:13:29 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few issues with block reference counting. Everything seems to work now.

Revision 1138 - Directory Listing
Modified Sun May 1 21:41:34 2011 UTC (8 years, 3 months ago) by pavelk
Whoops, quick bug.

Revision 1137 - Directory Listing
Modified Sun May 1 20:39:30 2011 UTC (8 years, 3 months ago) by pavelk
Got a preliminary version of let expressions working. There seems to be a bug in the optimizer that needs to be fixed.

Revision 1134 - Directory Listing
Modified Tue Apr 26 21:46:29 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few more bugs. Need to figure out how to track liveness of variables between blocks and a solution for variable reuse that doesn\'t blow up our IR.

Revision 1133 - Directory Listing
Modified Tue Apr 26 19:40:15 2011 UTC (8 years, 3 months ago) by pavelk
Small mistake.

Revision 1132 - Directory Listing
Modified Tue Apr 26 19:12:29 2011 UTC (8 years, 3 months ago) by pavelk
Fixed a few bugs and aesthetics. Added implementations for plane and disc intersections.

Revision 1131 - Directory Listing
Modified Mon Apr 25 23:49:08 2011 UTC (8 years, 4 months ago) by pavelk
Fixed a small bug in sphere point generation.

Revision 1130 - Directory Listing
Modified Mon Apr 25 19:12:54 2011 UTC (8 years, 4 months ago) by pavelk
Fixed some small bugs.

Revision 1129 - Directory Listing
Modified Mon Apr 25 18:55:18 2011 UTC (8 years, 4 months ago) by pavelk
Got it compiling, now we need to debug.

Revision 1123 - Directory Listing
Modified Wed Apr 20 21:07:37 2011 UTC (8 years, 4 months ago) by pavelk
More work on variables. Got the runtime stuff compiling, next we need to fix the examples to use the new interface so that we can debug it.

Revision 1122 - Directory Listing
Modified Tue Apr 19 23:01:52 2011 UTC (8 years, 4 months ago) by pavelk
More work on getting everything to compile. Mostly runtime and rendering things left.

Revision 1121 - Directory Listing
Modified Mon Apr 18 22:02:19 2011 UTC (8 years, 4 months ago) by pavelk
More work on state vars

Revision 1120 - Directory Listing
Modified Wed Apr 13 05:25:17 2011 UTC (8 years, 4 months ago) by pavelk
Finish up redoing translate.sml... Most of the compiler infrastructure stuff is done. Some of the utility functions (for intersection tests, etc) need to be fleshed out. I'm also not sure whether or not these changes will create sound IR code, but I guess that's what the checker is for anyway...

Revision 1119 - Directory Listing
Modified Mon Apr 11 17:09:46 2011 UTC (8 years, 4 months ago) by pavelk
Comment out the old action translations, I doubt we will use them again, but they are good to keep around for reference.

Revision 1110 - Directory Listing
Modified Thu Apr 7 21:30:21 2011 UTC (8 years, 4 months ago) by pavelk
Added a poignant comment

Revision 1109 - Directory Listing
Modified Thu Apr 7 21:28:20 2011 UTC (8 years, 4 months ago) by pavelk
More work on getting the compiler working.

Revision 1108 - Directory Listing
Modified Thu Apr 7 03:46:38 2011 UTC (8 years, 4 months ago) by pavelk
More work on particle system....

Revision 1107 - Directory Listing
Modified Wed Apr 6 22:46:51 2011 UTC (8 years, 4 months ago) by pavelk
Work on particle system stuff. Still a WIP, just checking it in so that I can work on it some more from home.

Revision 1106 - Directory Listing
Modified Thu Mar 31 15:17:40 2011 UTC (8 years, 4 months ago) by jhr
Added LET action

Revision 1105 - Directory Listing
Modified Thu Mar 31 14:17:25 2011 UTC (8 years, 4 months ago) by jhr
  Fixed spelling, punctuation, etc.

Revision 1104 - Directory Listing
Modified Mon Mar 28 00:24:18 2011 UTC (8 years, 4 months ago) by pavelk
More work on high level particle implementation.

Revision 1102 - Directory Listing
Modified Wed Mar 23 22:52:23 2011 UTC (8 years, 5 months ago) by pavelk
Reworking high level particle system language

Revision 1098 - Directory Listing
Modified Tue Mar 22 19:39:59 2011 UTC (8 years, 5 months ago) by jhr
  fixed comment

Revision 1095 - Directory Listing
Modified Mon Mar 21 23:04:48 2011 UTC (8 years, 5 months ago) by pavelk
New Particle sig rough draft

Revision 1094 - Directory Listing
Modified Thu Mar 17 12:41:53 2011 UTC (8 years, 5 months ago) by jhr
  Fixed some indentation

Revision 1093 - Directory Listing
Modified Thu Mar 17 05:23:02 2011 UTC (8 years, 5 months ago) by pavelk
Initial test for high level particle system language

Revision 1092 - Directory Listing
Modified Wed Mar 2 06:31:48 2011 UTC (8 years, 5 months ago) by pavelk
Introduced some new semantics to get ready to implement user defined state variables. I think the next step is to introduce a variety of options for generating rendering operations with state variables which will dictate which ones need to be specified in the emitter.

Revision 1091 - Directory Listing
Modified Mon Feb 14 20:49:21 2011 UTC (8 years, 6 months ago) by pavelk
Implement an initial framework for supporting user defined state variables. There is no current interface to adding them to a particle system. In general, user defined state variables will be created by the emitter and will never be eliminated by UVE. Things to do are to add support for them on the CPU side (the GPU implementation should fall out of it), and to define actions in terms of which state variable they act upon. Then we will have a smaller set of core actions anyway.

Revision 1083 - Directory Listing
Modified Tue Jan 25 12:10:49 2011 UTC (8 years, 6 months ago) by jhr
  Pass color to fragment shader

Revision 1082 - Directory Listing
Modified Tue Jan 25 07:01:05 2011 UTC (8 years, 6 months ago) by pavelk
Remove some unnecessary state changes in the particle system rendering. Add an example for how logs are supposed to be rendered, but they are not working the way that we had hoped.

Revision 1074 - Directory Listing
Modified Tue Jan 25 01:14:34 2011 UTC (8 years, 6 months ago) by pavelk
Work on demo. Updated particle library with some action and domain implementations.

Revision 1072 - Directory Listing
Modified Mon Jan 24 23:24:10 2011 UTC (8 years, 7 months ago) by jhr
  Added header comments

Revision 1067 - Directory Listing
Modified Sun Jan 23 22:34:25 2011 UTC (8 years, 7 months ago) by jhr
  Move particle-system shaders to lib/shaders at configuration time

Revision 1060 - Directory Listing
Modified Fri Jan 21 23:24:43 2011 UTC (8 years, 7 months ago) by pavelk
Added the ability to detect a particle within a cylinder. Touched up the demo animation to match the geometry.

Revision 1050 - Directory Listing
Modified Fri Jan 21 18:08:14 2011 UTC (8 years, 7 months ago) by jhr
  Update to match signatures in the PADL paper

Revision 1049 - Directory Listing
Modified Fri Jan 21 15:44:31 2011 UTC (8 years, 7 months ago) by jhr
  Added Makefile.in to particles library for typechecking support

Revision 1048 - Directory Listing
Modified Fri Jan 21 15:44:10 2011 UTC (8 years, 7 months ago) by jhr
  Restructured evalPrim function and other tweaks.

Revision 1041 - Directory Listing
Modified Thu Jan 20 23:24:50 2011 UTC (8 years, 7 months ago) by jhr
  fixed indentation

Revision 1037 - Directory Listing
Modified Thu Jan 20 17:24:02 2011 UTC (8 years, 7 months ago) by jhr
  Fixed typo

Revision 1035 - Directory Listing
Modified Thu Jan 20 17:15:31 2011 UTC (8 years, 7 months ago) by jhr
  Restore depth mask

Revision 1027 - Directory Listing
Modified Wed Jan 19 23:29:04 2011 UTC (8 years, 7 months ago) by pavelk
Added rotation state variable to particle systems.

Revision 1023 - Directory Listing
Modified Wed Jan 19 13:05:06 2011 UTC (8 years, 7 months ago) by jhr
  Removed normalized flag from floating-point versions of vertex attribute buffer
  calls and added enable/disable functions to BufferObj (these are redundant with
  the GL structure, but it is useful to have all of the needed buffer object calls
  in the same place)

Revision 1017 - Directory Listing
Modified Tue Jan 18 22:19:53 2011 UTC (8 years, 7 months ago) by pavelk
Updated emitters to accept float domains with distributions in order to generate points. We use it to create smoke particles somewhat slower than we need to. We could improve upon the effect to add a quadratic filter along with the linear one.

Revision 1008 - Directory Listing
Modified Sun Jan 16 17:04:08 2011 UTC (8 years, 7 months ago) by pavelk
* Changed the domain type to be polymorphic. Added a new range domain which is basically the analog to a box in one dimension. I still haven't been able to figure out how to properly integrate this with the emitter due to the nature of how we deal with creating particles.
* Updated the README
* Hacked the particle size generation to only generate particles in the range [0.5, 1.0] instead of [0.0, 1.0]


Revision 994 - Directory Listing
Modified Tue Jan 11 07:53:14 2011 UTC (8 years, 7 months ago) by pavelk
Updated the smoke animation to fix a lot of the bugs that I had after working on it from work. Most notably, from the last major fix, the things that are now working are:

- We use all of the textures in the texture list.
- There is proper alpha culling of dead particles in our textured quads.
- All of the various attribute buffers (color, size) are now properly passed to the shaders
- Fiddled with the emitter domain for the smoke so that the particles are moving in a wider arc.

Things that still need to be done:
- Figure out a way to limit the number of particles that are spawned per frame (to less than one)...



Revision 993 - Directory Listing
Modified Mon Jan 10 23:41:04 2011 UTC (8 years, 7 months ago) by pavelk
Potential fix to get all of the textures rendering for the textured quad particle system. I did this at work so I will have to test it thoroughly once I get home.

Revision 989 - Directory Listing
Modified Thu Jan 6 05:29:01 2011 UTC (8 years, 7 months ago) by pavelk
Implement a somewhat working version of the smoke animation. There are still a few more kinks that need to be worked out:

- The smoke textures need to be randomized per-particle, right now there is only one texture (the first in the list) that gets used for all particles.

- Need to be able to emit fewer than one particle per frame... This will be a bit trickier.

- There is an artifact where one quad, or perhaps all of the dead quads are being drawn at the emitter position. We may not be handling dead particles properly for the textured quads.

- Need to fiddle a bit with the emitter domain. Right now things are going too straight up. Perhaps an upside-down cone would be better than a cylinder.


Revision 987 - Directory Listing
Modified Wed Dec 29 17:55:10 2010 UTC (8 years, 7 months ago) by pavelk
Changed the animation to fit more of a fountain-y style and fixed a few bugs that came with it.

Revision 974 - Directory Listing
Modified Tue Aug 31 23:03:51 2010 UTC (8 years, 11 months ago) by jhr
  Changes to particle-system API

Revision 973 - Directory Listing
Modified Tue Aug 31 17:08:33 2010 UTC (8 years, 11 months ago) by pavelk
Rename actionFromList to sequence

Revision 972 - Directory Listing
Modified Thu Aug 26 18:42:09 2010 UTC (8 years, 11 months ago) by pavelk
Filter the global PSV variables from the PSV -> IR variables map when we do
the translation into IR. Then save off these variables in the definition of 
the psys program.

Revision 971 - Directory Listing
Modified Thu Aug 26 15:17:37 2010 UTC (8 years, 11 months ago) by jhr
  Adding mapping from PSV global variables to IR variables

Revision 970 - Directory Listing
Modified Thu Aug 26 14:30:01 2010 UTC (8 years, 11 months ago) by jhr
added FIXME

Revision 969 - Directory Listing
Modified Wed Aug 25 03:17:11 2010 UTC (9 years ago) by pavelk
Added per-runtime instance binding for particle system variables. This also required me to clean up the typing system a bit.

Revision 967 - Directory Listing
Modified Thu Aug 19 20:11:36 2010 UTC (9 years ago) by jhr
  Working on OpenCL generation

Revision 966 - Directory Listing
Modified Thu Aug 19 13:22:38 2010 UTC (9 years ago) by jhr
  Working on OpenCL translation

Revision 965 - Directory Listing
Modified Thu Aug 19 12:25:14 2010 UTC (9 years ago) by jhr
  Added properties to PSysIR variables and switched the UVE module to use them
  instead of a dedicated flag.

Revision 964 - Directory Listing
Modified Wed Aug 18 03:22:39 2010 UTC (9 years ago) by pavelk
Added shaders.

Revision 962 - Directory Listing
Modified Tue Aug 10 21:04:52 2010 UTC (9 years ago) by jhr
  Call enableVertexAttribArray

Revision 960 - Directory Listing
Modified Tue Aug 10 15:27:03 2010 UTC (9 years ago) by jhr
  Fix minor bugs in arguments

Revision 957 - Directory Listing
Modified Tue Aug 10 04:48:28 2010 UTC (9 years ago) by pavelk
Changed particle rendering code to use VBOs, needs looking over.

Revision 956 - Directory Listing
Modified Tue Aug 10 03:12:38 2010 UTC (9 years ago) by jhr
  Working on OpenCL translation

Revision 955 - Directory Listing
Modified Wed Aug 4 05:36:42 2010 UTC (9 years ago) by pavelk
Got the quad particles working properly, now we just need to figure out the alpha blending problem...

Revision 953 - Directory Listing
Modified Tue Aug 3 15:02:05 2010 UTC (9 years ago) by jhr
  Fixing indentation

Revision 952 - Directory Listing
Modified Tue Aug 3 05:55:52 2010 UTC (9 years ago) by pavelk
Fixed some problems with rendering, now it's on to debugging the textured quad renderer.

Revision 951 - Directory Listing
Modified Tue Aug 3 05:16:54 2010 UTC (9 years ago) by jhr
  Another minor change

Revision 950 - Directory Listing
Modified Tue Aug 3 05:10:42 2010 UTC (9 years ago) by jhr
  More work on OpenCL

Revision 949 - Directory Listing
Modified Tue Aug 3 04:07:28 2010 UTC (9 years ago) by jhr
  Working on OpenCL support for particles

Revision 948 - Directory Listing
Modified Tue Aug 3 04:06:57 2010 UTC (9 years ago) by jhr
  Adding test directory for particles

Revision 945 - Directory Listing
Modified Tue Jul 27 05:52:56 2010 UTC (9 years ago) by pavelk
Meant to check this in too...

Revision 943 - Directory Listing
Modified Tue Jul 27 04:38:50 2010 UTC (9 years ago) by jhr
  Working on OpenCL target

Revision 942 - Directory Listing
Modified Mon Jul 26 21:26:51 2010 UTC (9 years ago) by jhr
  Tweaked code formatting

Revision 941 - Directory Listing
Modified Thu Jul 22 15:34:35 2010 UTC (9 years, 1 month ago) by jhr
  Fixed copyrights

Revision 939 - Directory Listing
Modified Sun Jul 18 18:31:02 2010 UTC (9 years, 1 month ago) by jhr
  Working on OpenCL generation

Revision 938 - Directory Listing
Modified Thu Jul 15 15:24:45 2010 UTC (9 years, 1 month ago) by jhr
  Added particleState function

Revision 937 - Directory Listing
Modified Thu Jul 15 04:02:46 2010 UTC (9 years, 1 month ago) by jhr
  Some work on OpenCL backend

Revision 935 - Directory Listing
Modified Mon Jul 12 02:27:11 2010 UTC (9 years, 1 month ago) by pavelk
Work on the psys renderer

Revision 918 - Directory Listing
Modified Tue Jun 29 04:24:39 2010 UTC (9 years, 1 month ago) by pavelk
Fixed a few bugs. Also got the prelims ready for different rendering modes.

Revision 917 - Directory Listing
Modified Mon Jun 28 14:11:14 2010 UTC (9 years, 1 month ago) by jhr
  Working on OpenCL generation

Revision 916 - Directory Listing
Modified Mon Jun 28 13:32:40 2010 UTC (9 years, 1 month 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, 2 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, 2 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, 2 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, 2 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, 2 months ago) by pavelk
Whoops, minor omission.

Revision 903 - Directory Listing
Modified Fri May 28 21:16:39 2010 UTC (9 years, 2 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, 2 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, 2 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, 2 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, 2 months ago) by pavelk
CPU interpreter, WIP

Revision 877 - Directory Listing
Modified Thu May 6 20:24:53 2010 UTC (9 years, 3 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, 3 months ago) by pavelk
Simplified optimizeIR function.

Revision 875 - Directory Listing
Modified Thu May 6 18:26:37 2010 UTC (9 years, 3 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, 3 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, 3 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, 3 months ago) by pavelk
Got UVE working.

Revision 870 - Directory Listing
Modified Fri Apr 30 17:21:32 2010 UTC (9 years, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 months ago) by pavelk
UVE: work in progress...

Revision 862 - Directory Listing
Modified Tue Apr 27 01:27:39 2010 UTC (9 years, 3 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, 5 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, 6 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, 6 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, 6 months ago) by jhr
  Added some comments

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

Revision 747 - Directory Listing
Modified Tue Feb 2 06:07:28 2010 UTC (9 years, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 7 months ago) by jhr
  Fix indentation

Revision 687 - Directory Listing
Modified Tue Jan 12 05:55:53 2010 UTC (9 years, 7 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, 7 months ago) by jhr
  Fixing indentation

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

Revision 672 - Directory Listing
Modified Mon Jan 4 00:57:24 2010 UTC (9 years, 7 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, 8 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, 8 months ago) by jhr
  Added NEG and NORM primops

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

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

Revision 607 - Directory Listing
Modified Tue Dec 15 01:44:12 2009 UTC (9 years, 8 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, 8 months ago) by pavelk
Fixed incorrect comment

Revision 605 - Directory Listing
Modified Mon Dec 14 05:12:57 2009 UTC (9 years, 8 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, 8 months ago) by pavelk
Work on IR.

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

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

Revision 575 - Directory Listing
Modified Tue Dec 8 04:47:46 2009 UTC (9 years, 8 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, 8 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, 8 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, 9 months ago) by jhr
  Code cleanup

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

Revision 515 - Directory Listing
Modified Tue Nov 17 04:32:50 2009 UTC (9 years, 9 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, 9 months ago) by jhr
  Working on translation

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

Revision 499 - Directory Listing
Modified Tue Nov 3 14:02:09 2009 UTC (9 years, 9 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, 10 months ago) by jhr
  Fixed indentation

Revision 496 - Directory Listing
Modified Wed Oct 14 05:23:53 2009 UTC (9 years, 10 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, 10 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, 10 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 (9 years, 11 months 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 (9 years, 11 months ago) by pavelk
Adding preliminary definion for a PSysVar

Revision 475 - Directory Listing
Modified Thu Jun 4 20:50:23 2009 UTC (10 years, 2 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, 2 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, 2 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, 2 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, 2 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, 3 months ago) by pavelk
Added bounce. Needs tuning.

Revision 437 - Directory Listing
Modified Wed Apr 29 14:29:14 2009 UTC (10 years, 3 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, 3 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, 3 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, 3 months ago) by jhr
  Minor fixes and code cleanup

Revision 433 - Directory Listing
Modified Mon Apr 27 18:52:17 2009 UTC (10 years, 3 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, 3 months ago) by jhr
  MLB file cleanup

Revision 429 - Directory Listing
Modified Mon Apr 27 15:10:27 2009 UTC (10 years, 3 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, 10 months ago) by jhr
repository restructuring

Revision 279 - Directory Listing
Modified Sun Sep 28 15:19:32 2008 UTC (10 years, 10 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, 5 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, 7 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