C4DLounge.eu - Cinema 4D Gebruikers Forum  

Go Back   C4DLounge.eu - Cinema 4D Gebruikers Forum > RESOURCES > Recources, Tips >>> > Plugins & Scripts/Python

Reply
 
Thread Tools Display Modes
  #21  
Old 4 Weeks Ago
Hermenator Hermenator is offline
Member
 
Join Date: Nov 2014
Location: Delft, Nederland
Posts: 43
Default Game of Life

Ok, hier dan de versie zonder numpy. Die is niet eens veel langzamer. De berekening van de blokjes is wel sneller met numpy, maar c4d doet er net zo lang over om het te renderen (ook in de viewport) en daar zit em de bottleneck. Weer wat geleerd!

Groeten,
H
Attached Images
File Type: jpg Game of Life no-numpy.jpg (227.6 KB, 15 views)
Attached Files
File Type: c4d Game of Life_final_no_numpy.c4d (292.9 KB, 9 views)
Reply With Quote
  #22  
Old 4 Weeks Ago
douwe's Avatar
douwe douwe is offline
Admin Team
 
Join Date: Feb 2010
Posts: 1,866
Default

coole stuff, jongens !
coole stuff !

nette code ook


een game of life heb ik zelf ook eens ooit gemaakt,
in een reeksje met de usual suspects in het rijtje automatons.

Als Effector, denk ik dat dat was.
Dat liep toen nogal traag.
Zo te zien gaat het een stuk vlotter als generator.
(of is mijn hardware intussen een stuk sneller ? )

lekker bezig, gentlemen !

fijn dat jullie je experimenten hier blijven delen !

d
Reply With Quote
  #23  
Old 4 Weeks Ago
pgrooff pgrooff is offline
Senior Member
 
Join Date: Aug 2009
Posts: 674
Default

Quote:
Originally Posted by Hermenator View Post
Ik zie alleen dat ik numpy heb gebruikt (een python package voor number crunching), en ik vrees dat niet veel mensen dat hebben geÔnstalleerd (Laat even weten of je het wel of niet hebt, met numpy heb ik nog wel een aantal geinige dingetjes...)
Zou je nog een keer kunnen uitleggen hoe je numpy en ander python libraries installeert en binnen cinema 4d gebruikt.

-Pim
__________________
Kijk ook eens op mijn YouTube Channel of mijn Cinema4d Blog.
Reply With Quote
  #24  
Old 4 Weeks Ago
Hermenator Hermenator is offline
Member
 
Join Date: Nov 2014
Location: Delft, Nederland
Posts: 43
Default Numpy installeren

Hoi Douwe,

Zal toch wel het laatste zijn (snellere hardware)? Ook leuk als je die hier wilt posten, hoor. Weliswaar geen generator, maar ook python. Binnenkort heb ik ws ook Broadcast, en dan ga ik zeker n paar effectors maken!



Hoi Pim,

Volgens mij struggle je hier al een tijdje mee he? Ik kwam een hoop posts van je op plugincafe tegen

Er zijn vele manieren om numpy/scipy enzo te installeren, maar python werkt op windows anders dan op osx geloof ik. Ik werk zelf met osx, jij geloof ik met windows, toch? Hieronder twee manieren waarop ik het heb gedaan, eerst de makkelijke en daarna de betere:

1) Allereerst is er autoPACK, een plugin waarmee je moleculen kunt genereren die je dan in Cinema4d kan tonen. Ik vond het niet heel boeiend, maar het leuke is dat het numpy beschikbaar maakt binnen heel Cinema 4D! Gewoon de plugin installeren en "import numpy". Klaar!

2) Als je toch al veel met python doet, kun je bijvoorbeeld Anaconda installeren. Dit is een (gratis) wetenschappelijke python-environment met numpy, scipy en nog veel meer. Kies de python2.7 versie. Dit is belangrijk, het moet dezelfde versie zijn als welke cinema gebruikt.
Ik weet niet waar Anaconda de boel op windows installeert, maar vervolgens kun je de numpy directory zo uit anaconda kopiŽren, en in de cinema4d Packages folder plakken. Easy!
Maar er is een klein trucje wat je precies moet kopiŽren. Volge het pad: anaconda/pkgs/numpy-1.11.1-py27_0/lib/python2.7/site-packages/numpy. Die laatste folder moet je in z'n geheel kopiŽren naar de cinema packages folder:

"CINEMA 4D RXX preferences" /library/python/packages/win/
("CINEMA 4D RXX preferences" is de Preferences folder in Cinema. Je vindt die door Cinema te openen en:
Edit->Preferences->Open Preferences Folder te klikken).

Als je later nog meer packages wilt installeren, zet je ze hier gewoon bij. Ook zelfgeschreven code, wat niet zelf een plugin is maar 'resources' zeg maar, zet ik hier neer en python kan het vinden.

Het enige wanneer dit niet werkt is bij een pakket als numba, ws omdat het dynamically gelinked is ofzo. Maar gelukkig is dit met numpy niet het geval, en scipy ook niet!

Veel succes!
groeten, H

EDIT: Als je voor optie 2 kiest, is er nog iets waar je op moet letten: Alleen numpy-nomkl werkt zonder dynamic libraries. Anaconda distribueert tegenwoordig standaard met mkl (Math Kernel Library), wat dus niet werkt onder Cinema.
De oplossing: Nadat je Anaconda hebt geÔnstalleerd, moet je een aparte environment maken met python2.7 en de packages die je wilt gebruiken (numpy-nomkl, scipy, ect). Dat gaat via de terminal, maar is vrij eenvoudig. Laat maar weten of je van deze optie gebruik wilt maken, dan loods ik je daar ook wel doorheen

Last edited by Hermenator; 4 Weeks Ago at 02:39. Reason: belangrijke extra info
Reply With Quote
  #25  
Old 3 Weeks Ago
Hermenator Hermenator is offline
Member
 
Join Date: Nov 2014
Location: Delft, Nederland
Posts: 43
Default

Hallo, hallo,

Hier weer een update, deze keer een simpel Lindenmayer-systeem, zoals MoSpline dat ook heeft. Ik vond echter de gebruikte codes in MoSpline dermate ondoorgrondelijk, dat ik eerst maar een eigen versie in python heb gemaakt.

Wie de handleiding van de MoSpline wel eens heeft doorgelezen, weet ws wel hoe het werkt: Je voert een string van letters in, waarbij elke string staat voor een bewerking. Zo staat (in deze python versie) 'A' bijvoorbeeld voor 'advance', ťťn stapje vooruit. 'L' staat voor 'draai naar Links', 'R' voor 'draai naar Rechts', enz. In python is dit uitgewerkt door een dictionary waarin elke letter voor een functie staat.

Als het hierbij bleef, zou dit een zeer omslachtige manier zijn om een spline te tekenen. Maar elke letter kun je vervangen door een nieuwe reeks letters, en zo kunnen eenvoudig zeer complexe reeksen aan elkaar worden geregen. Die reeks kun je ook weer kopiŽren om zo nÚg complexere vormen te creŽren. Een voorbeeld:

InitiŽle string: AL(120)AL(120)A
Replacements: A=ARALLARA

Dit zou iets als de Koch snowflake moeten opleveren.
A = een stap voorwaarts,
L(120) = draai 120 graden naar links,

Een handig foefje is dat je ook tekens kunt vervangen de zelf geen functie representeren, maar enkel 'placeholder' zijn. Een voorbeeld:

InitiŽle string: ffA
Replacements: f=AL(120), A=ARALLARA

geeft dezelfde vorm als in het eerste voorbeeld.

De code is royaal voorzien van comments, dus als je ermee gaat spelen is het makkelijk te begrijpen. Veel plezier ermee, en heb je daarna zin in meer, probeer dan de MoSpline eens uit!

groet,
H
Attached Images
File Type: jpg python L-system.jpg (105.4 KB, 5 views)
Attached Files
File Type: c4d simple L-system.c4d (165.6 KB, 5 views)

Last edited by Hermenator; 3 Weeks Ago at 18:33.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT +2. The time now is 09:26.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Met trots gehost door Webdesign bureau Graphic Violence.
(c) C4DLounge.eu . All documents on this forum are owned by their respective creators and may not be sold or republished in any way.