tutorials:spectral-light-modeling-architecture
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
tutorials:spectral-light-modeling-architecture [2025/05/28 14:33] – created barley1965 | tutorials:spectral-light-modeling-architecture [2025/06/01 17:45] (current) – barley1965 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Effect of spectral light on morphogenesis ====== | ====== Effect of spectral light on morphogenesis ====== | ||
- | Open SpectralLight.gsz and explore the four files it consists of: '' | + | Open {{tutorials: |
What can this model do? Well, as its name suggests, with this model we can simulate spectral light. So, instead of just simulating a lamp with white light or, at best, red, green and blue light, we now have the possibility to simulate an entire spectrum of visible light and even part of the light just outside the visible spectrum! | What can this model do? Well, as its name suggests, with this model we can simulate spectral light. So, instead of just simulating a lamp with white light or, at best, red, green and blue light, we now have the possibility to simulate an entire spectrum of visible light and even part of the light just outside the visible spectrum! | ||
Line 9: | Line 9: | ||
<code java> | <code java> | ||
// | // | ||
- | static const float[] WAVELENGTHS = {360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830}; | + | static const float[] WAVELENGTHS = {360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, ...}; |
- | static const float[] WAVELENGTHS_PB = {380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780}; | + | static const float[] WAVELENGTHS_PB = {380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, ...}; |
//red | //red | ||
- | static const float[] AMPLITUDES_RED = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.042678, 0.041, 0.039051, 0.036901, 0.036545, 0.037442, 0.037982, 0.038286, 0.03858, 0.038869, 0.039535, 0.040423, 0.041638, 0.043033, 0.04481, 0.046785, 0.048353, 0.049721, 0.051104, 0.052493, 0.054621, 0.057068, 0.058738, 0.060092, 0.061854, 0.063771, 0.066461, 0.069428, 0.071991, 0.07442, 0.075683, 0.076583, 0.07912, 0.082132, 0.084058, 0.085691, 0.08708, 0.088408, 0.089546, 0.090641, 0.091844, 0.09307, 0.094392, 0.095733, 0.096576, 0.09733, 0.098072, 0.098813, 0.099362, 0.099882, 0.100843, 0.101863, 0.102837, 0.103805, 0.104244, 0.104627, 0.104487, 0.104298, 0.105249, 0.10629, 0.106282, 0.106205, 0.106741, 0.107311, 0.107366, 0.107398, 0.108074, 0.108769, 0.108811, 0.10884, 0.108912, 0.108984, 0.109788, 0.110585, 0.110678, 0.110771, 0.110911, 0.111031, 0.110526, 0.1101, 0.111595, 0.112959, 0.111788, 0.110694, 0.110856, 0.111022, 0.111234, 0.111552, 0.113145, 0.114621, 0.114833, 0.115119, 0.116112, 0.117018, 0.117166, 0.117149, 0.115817, 0.114754, 0.115659, 0.11645, 0.116467, 0.116488, 0.116533, 0.116693, 0.117525, 0.118349, 0.119134, 0.119908, 0.120624, 0.121332, 0.122, 0.122367, 0.121335, 0.120924, 0.123269, 0.125606, 0.127907, 0.130048, 0.131541, 0.133384, 0.136576, 0.139578, 0.141875, 0.144569, 0.14867, 0.15298, 0.158006, 0.163215, 0.169029, 0.175302, 0.18303, 0.190968, 0.199553, 0.208871, 0.220358, 0.232585, 0.246931, 0.262041, 0.27927, 0.297321, 0.317585, 0.339777, 0.36701, 0.395357, 0.426534, 0.459646, 0.497543, 0.537116, 0.580722, 0.626802, 0.678689, 0.732118, 0.789078, 0.847496, 0.909171, 0.97243, 1.039143, 1.109487, 1.187584, 1.269444, 1.35917, 1.457377, 1.572934, 1.698867, 1.845597, 2.005785, 2.192438, 2.392864, 2.619854, 2.861126, 3.129449, 3.406267, 3.698892, 3.988507, 4.272618, 4.533633, 4.753081, 4.933084, 5.043218, 5.095693, 5.047588, 4.938284, 4.723758, 4.454844, 4.093704, 3.710495, 3.290367, 2.871032, 2.453005, 2.059427, 1.705707, 1.387603, 1.126892, 0.897789, 0.719084, 0.570223, 0.468411, 0.38385, 0.326217, 0.280654, 0.253748, 0.232841, 0.221125, 0.211133, 0.203759, 0.197718, 0.193683, 0.188708, 0.182329, 0.174237, 0.163598, 0.15506, 0.149618, 0.144764, 0.140769, 0.134919, 0.126363, 0.119833, 0.116244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; | + | static const float[] AMPLITUDES_RED = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...}; |
//blue | //blue | ||
- | static const float[] AMPLITUDES_BLUE = {0.011596, 0.011512, 0.00871, 0.002914, 0, 0, 0.002729, 0.007988, | + | static const float[] AMPLITUDES_BLUE = {0.011596, 0.011512, 0.00871, 0.002914, 0, 0, 0.002729, 0.007988, ...}; |
//far-red | //far-red | ||
- | static const float[] AMPLITUDES_FR ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000644, 0.000741, 0.000835, 0.000925, 0.000896, 0.000695, 0.000613, 0.000704, 0.000755, 0.000751, 0.000786, 0.000877, 0.000853, 0.000666, 0.000556, 0.000556, 0.000633, 0.00082, 0.000931, 0.000936, 0.000901, 0.000811, 0.00076, 0.000765, 0.000811, 0.000914, 0.000979, 0.000986, 0.000953, 0.000861, 0.000809, 0.000816, 0.000907, 0.00112, 0.001163, 0.000961, 0.000887, 0.000998, 0.00111, 0.001224, 0.001251, 0.00115, 0.001092, 0.001099, 0.001061, 0.000957, 0.000942, 0.001062, 0.001047, 0.000825, 0.000787, 0.001027, 0.001083, 0.000854, 0.000719, 0.000726, 0.000831, 0.001087, 0.001102, 0.000735, 0.000612, 0.000878, 0.000844, 0.000323, 0.000156, 0.000567, 0.000881, 0.001033, 0.001027, 0.000752, 0.000473, 0.000183, 0, 0, 0.000169, 0.000635, 0.000765, 0.0003, 0.000115, 0.000437, 0.000532, 0.00021, 0.000117, 0.000451, 0.000674, 0.000682, 0.00057, 0.000228, 0.00012, 0.000478, 0.000599, 0.000241, 0.000123, 0.000498, 0.000755, 0.000764, 0.000648, 0.000264, 0.000189, 0.000793, 0.001025, 0.000421, 0.000128, 0.000549, 0.00072, 0.000299, 0, 0, 0.000131, 0.000587, 0.000786, 0.000331, 0, 0, 0.000133, 0.000625, 0.000858, 0.000366, 0.000134, 0.000654, 0.000913, 0.000393, 0.000134, 0.000681, 0.001102, 0.001116, 0.001129, 0.001143, 0.001024, 0.00045, 0}; | + | static const float[] AMPLITUDES_FR ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...}; |
- | //lampe phenobean | + | //lamp phenobean |
- | static const float[] AMPLITUDES_PHENOB = {7.26375E-05, |