-
Notifications
You must be signed in to change notification settings - Fork 60
/
TODO.txt
76 lines (69 loc) · 4.29 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
UI annoyances:
- edit formula dialog: want tab key to indent (doesn't work on Windows), want indent to be smart ideally
- never want dialogs to appear partially off-screen
- need some way to refresh the Patterns Pane, other than collapse/expand on the folders?
- can floating panes go behind main window?
Big picture issues:
- Would love an Android version but OpenCL isn't supported. Renderscript Compute seems to be the
thing but kernels are compiled at build time, which isn't what we want. Could work as a pattern
viewer, allowing users to finger paint. NDK is another possibility. Maybe OpenGL ES, with a
shader - fits in with WebGL Playground idea below.
- Scripting support
- use FFT for speed?
before 0.x release:
- allow operations on chemicals: swap, duplicate
- fix panning issue on complex scenes (e.g. Bays_3D.vti)
- new fill types: conical gradient
- choice of log or linear color palette
- NKS rules from pp 163-166
- floating-point speed reporting
- progress indicator on loading large patterns
- programmable colouring (R,G,B channels, or something that uses less memory (second opencl pass?))
- add Help files for Info Panel, etc.?
- progress indicator for mesh generators?
- way to expand mesh grids where possible? by detecting mesh properties? could then implement wrap
too, on polyhedral meshes. Needed for images too, to expand a dataset without deleting the data.
- add spectrum slider to change current paint color?
- set scene rotating by a setting in the start recording dialog box, or for general use?
- mouse wheel sensitivity option?
- toggle between single channel painting and multi-channel painting. Sometimes we want to paint just in channels
a and b, though, for example, which is trickier.
- fix Mac bug: can't disable tooltips (bug is in wxOSX-Cocoa)
- improve wxHtmlWindow so selected text goes gray on loss of focus (Mac only?)
- allow user to change the default render settings
- read Turk's CASCADE language, for freeze-and-continue schemes
- add initial_pattern_generator to Info Pane for editing
- export rule to the WebGL Playground template
- export rule and cells to e.g. Matlab for simulating with different tools
- add orientation indicator, as in Paraview
- mesh relaxation & subdivision scheme for imported meshes (similar to Turk but can use VTK for this)
- simpler subdivide-until-equal-density scheme, to equalise cell area/volume (also to just subdivide)
- make tetrahedral mesh from input surface: scatter internal points then tetrahedralize
- 2D slices as slice through 3D volume (if available, else whole image) =>
1D slice as line through 2D slice (if available, else whole image)
- implement suggested_running_speed (tu/s) instead of timesteps_per_render? conflict when recording
with need for a constant speed.
before 1.0 release:
- use_image_interpolation=false should give city blocks in the displacement-mapped surface?
- lots of patterns in library (primary UI for beginners is a list of examples to click)
- copy/paste (2d only?) (paste modes: add, overwrite)
- SSE for non-OpenCL implementations (will assume all target cpus support SSE)
- new overlay shape: scattered rectangles/circles (need some higher-level specifier for this?)
- graphical UI for editing the initial-pattern-generator overlay stack
future ideas:
- bug: allow user to change OpenCL platform and device while a pattern is running
- full control over scene graph, e.g. nodes+connections interface
- radiosity rendering for better visualization of tangled structures (embed a raytracer)
- STL output, email file to shapeways for printing
- discrete RD (simulation of individual molecules, to compare with differential equations)
- display the evolution of a 1D pattern as a 2D image, with time as the second axis, as here:
https://www.stephenwolfram.com/publications/recent/specialfunctions/images/Slide028_917x754.gif
- allow non-OpenCL implementations to load all files, by parsing formula
- read Golly rule tables
- new neighborhood type: WITHIN_RADIUS, as per https://groups.csail.mit.edu/mac/projects/amorphous/jsim/sim/GrayScott.html
- allow 3D view angle to be specified as a render setting
wanted patterns:
- bacterial colony: e.g. Modeling Spatio-Temporal Patterns Generated by Bacillus subtilis
- more of the chemical models: Brandeisator, etc.
code annoyances:
- would prefer ImageRD to use named arrays internally, as in MeshRD