123 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USING: kernel namespaces arrays sequences math math.vectors random
							 | 
						||
| 
								 | 
							
								       springies springies.ui ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								IN: springies.models.2snake
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: model ( -- )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								{ } clone >nodes
							 | 
						||
| 
								 | 
							
								{ } clone >springs
							 | 
						||
| 
								 | 
							
								0.001 >time-slice
							 | 
						||
| 
								 | 
							
								gravity off
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1 19.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								2 36.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								3 54.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								4 72.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								5 90.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								6 108.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								7 126.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								8 144.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								9 162.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								10 180.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								11 198.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								12 216.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								13 234.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								14 252.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								15 270.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								16 288.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								17 306.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								18 324.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								19 342.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								20 360.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								21 378.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								22 396.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								23 414.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								24 432.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								25 450.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								26 468.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								27 504.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								28 486.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								29 522.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								30 540.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								31 558.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								32 576.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								33 594.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								34 612.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								35 630.0 328.0 0.0 0.0 1.0 1.0 mass
							 | 
						||
| 
								 | 
							
								1 1 2 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								2 3 2 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								3 3 4 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								4 4 5 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								5 5 6 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								6 6 7 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								7 7 8 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								8 8 9 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								9 9 10 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								10 10 11 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								11 11 12 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								12 12 13 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								13 13 14 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								14 14 15 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								15 15 16 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								16 16 17 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								17 17 18 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								18 18 19 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								19 19 20 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								20 20 21 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								21 21 22 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								22 22 23 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								23 23 24 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								24 24 25 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								25 25 26 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								26 26 28 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								27 28 27 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								28 27 29 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								29 29 30 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								30 30 31 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								31 31 32 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								32 32 33 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								33 33 34 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								34 34 35 200.0 1.500000 18.0 spng
							 | 
						||
| 
								 | 
							
								35 1 3 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								36 2 4 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								37 3 5 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								38 4 6 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								39 5 7 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								40 6 8 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								41 7 9 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								42 8 10 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								43 9 11 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								44 10 12 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								45 11 13 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								46 12 14 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								47 13 15 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								48 14 16 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								49 15 17 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								50 16 18 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								51 17 19 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								52 18 20 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								53 19 21 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								54 20 22 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								55 21 23 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								56 22 24 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								57 23 25 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								58 24 26 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								59 25 28 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								60 26 27 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								61 28 29 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								62 27 30 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								63 29 31 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								64 30 32 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								65 31 33 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								66 32 34 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								67 33 35 200.0 1.500000 36.0 spng
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								nodes> [ 400 random -200 + 400 random -200 + 2array swap set-node-vel ] each ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								USING: threads ui ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: go ( -- ) [ [ springies-window* 1000 sleep model ] with-scope ] with-ui ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MAIN: go
							 |