Wednesday, 13 November 2019

Exp_Physical_04

스트로브 여러개 활용

그림자를 활용한 Zoetrope에 두개의 스트로브의 빛으로 비췄을때 어떤 상이 나오는지 실험을 진행하였다. 실험 결과 다양한 패턴들이 나왔으며 입체적으로도 보는 현상이 나왔다. 결과는 다음과 같다.

Use multiple strobes

We experimented with what happened when Zoetrope used the shadow to illuminate the light of two strobes. As a result of the experiment, various patterns came out and the phenomenon of seeing in three dimensions came out. The result is as follows.


Exp_Physical_03

LED 시계 제작

시계의 역활인 정보 전달이 부족하여 LED를 활용하여 시계를 제작하였다. 시계는 와이파이 보드를 활용하여 시간정보를 불러와서 시간을 표현하였다. 시, 분, 초를 원하는 색상으로 표현 할 수 있다는 장점이 있다.

실험 도중 예전의 시계인 해시계의 모형이 나타나는 점을 발견하여 그림자를 활용한 시간 표현은 어떨지 고민하고 있다.

LED Watch Making

Due to the lack of information transmission, the watch was manufactured using LED. The watch uses the Wi-Fi board to bring up time information and express the time. It has the advantage of expressing hours, minutes and seconds in the desired color.

During the experiment, I discovered the model of the sundial, the old clock, and wondered what about time expression using the shadow.




Monday, 11 November 2019

Exp_Animation_07

Zoetrope 패턴 디자인(파티클 활용)

Zoetrope에 넣을 패턴 디자인을 진행하였다. 패턴에는 파티클을 활용하였으며 파티클의 개수, 밝기, 파티클 종류 등을 다양하게 변화를 시켜 어떠한 모형이 나오는지 실험을 진행하였다. 실험결과는 다음과 같다.

Zoetrope pattern design (using particles)

I did a pattern design for Zoetrope. Particles were used for patterns, and experiments were conducted on what kind of models appeared by varying the number of particles, brightness, and particle types. The experimental results are as follows.


Exp_Physical_02

그림자를 활용한 숫자변화

빛과 그림자를 활용한 Zoetrope의 시간변화를 실험해보았다. 실험에서는 일정한 거리로 멀어지니 숫자가 흐리게 나오는 결과가 나왔다. 오늘 빛의 세기를 더 강하기 하기 위해 20W Strobe를 구매하였다. 현재는 10W Strobe를 활용중이다. 그러나 예전의 실험에 나왔던 빛의 유지정도에 따른 모션블러 효과가 일어날 수도 있는 오류가 나타날 수 있다. 

또한 그림자를 활용한 패턴에서 외형에 일정한 패턴을 주어 그림자를 보았을때는 원형이 아닌 실험적인 모형으로 제작해 보았다. 이후에 다양한 패턴들을 넣어 다양한 그림자 실험을 진행 할 예정이다.

Numerical change using shadow


I experimented with Zoetrope's time change using light and shadow. The experiment resulted in numbers had made a blur effect by moving away from a certain distance. Today I bought a 20W Strobe to make the light more intense. I was currently using 10W Strobe. However, an error may occur that may cause a motion blur effect depending on the degree of light retention in the previous experiment.

In addition, experimented change of the circle shadow, this pattern was used as an experimental model. Various designs will be put in to experiment with multiple shadows.


Sunday, 10 November 2019

Exp_Code_04

3Ds Max 가지 만드는 코드

3D max code를 활용하여 가지를 만드는 코드를 제작하였다. 이는 책의 내용을 참고하였으며 코드는 다음과 같다.

Code to Create 3Ds Max Branches

Using 3D max code, we made a code to make branches. It refers to the contents of the book and the code is as follows.

result

utility Branching "Branching"
(
global rootTree
global branchesArray=#()

--Parameters

--Branch Shape
global trunkHeight=200
global trunkRadius=2
global trunkSides=12
global taperingFactorMin=0.4
global taperingFactorMax=0.6

--Branching
global branchingDepth=5
global branchingNumberMin=4
global branchingNumberMax=8

--Offset/Translation
global offsetFactorMin=0.0
global offsetFactorMax=0.5

--Unfolding/Rotation
global branchingXAngleMin=10
global branchingXAngleMax=15
global branchingZAngleMin=2
global branchingZAngleMax=6

--Height/Scale
global heightFactorMin=0.2
global heightFactorMax=0.8

group "Branch Shape"
(
spinner trunkHeight_spinner "Height: "type:#worldunits range:[0.0001,100000,trunkHeight]toolTip:"Initial Trunk Height"
spinner trunkRadius_spinner "Radius: "type:#worldunits range:[0.0001,100000,trunkRadius]toolTip:"Initial Trunk Radius (at base)"
spinner trunkSides_spinner "Sides: "type:#integer range:[3,36,trunkSides]toolTip:"Number of Sides"
spinner taperingFactorMin_spinner "Taper Min: "type:#float range:[0.0,1.0,taperingFactorMin] toolTip:"Minimum Tapering Factor"
spinner taperingFactorMax_spinner"Taper Max: "type:#float range:[0.0,1.0,taperingFactorMax] toolTip:"Maximum Tapering Factor"
)

group "Branching"
(
spinner branchingDepth_spinner "Depth: "type:#integer range:[1,100000,branchingDepth] toolTip:"total recursion steps"
spinner branchingNumberMin_spinner "Min: "type:#integer ramge:[0,100000,branchingNumberMin] toolTip: "Minimum number to branch out at each step"
spinner branchingNumberMax_spinner "Max:"type:#integer range:[0,100000,branchingNumberMax] toolTip: "Maximum number to branch out at each step"
)

group"Offset/Translation"
(
spinner offsetFactorMin_spinner"Min:"tpye:#float range:[0.0,100000,heightFactorMin]toolTip:"Minimum distance offset factor to slide child along parent"
spinner offsetFactorMax_spinner "Max: "type:#float range:[0.0,100000,heightFactorMax] toolTip:"Maximum distance offset factor to slide child along parent"
)

group "Unfolding/Rotation"
(
spinner branchingXAngleMin_spinner "X Min: "type:#float range:[0,360,branchingXAngleMin] toolTip: "Minimum X rotation angle of each branch"
spinner branchingXAngleMax_spinner "X Max: "type: #float range:[0,360,branchingXAngleMax] toolTip: "Maximum X rotation angle of each branch"
spinner branchingZAngleMin_spinner "Z Min: "type: #float range:[0,360,branchingZAngleMin] toolTip: "Minimum Z additional Z rotation angle offset"
spinner branchingZAngleMax_spinner "Z Max: "type: #float range:[0,360,branchingZAngleMax] toolTip: "Maximum additional Z rotation angle offset"
)

group "Height/Scale"
(
spinner heightFactorMin_spinner "Scale Min: "type: #float range:[0.0,100000,heightFactorMin] toolTip: "Minimum scale factor of child to parent"
spinner heightFactorMax_spinner "Scale Max: "type: #float range: [0.0,100000,heightFactorMax] toolTip:"Maximum scale factor of child to parent"
)

button generate_button "Generate" enabled:true

fn branch parent depth =
(
if(depth<branchingDepth)then
(
numberOfBranches=(random branchingNumberMin branchingNumberMax)
for i = 1 to numberofBranches do
(
myBranch = copy parent
myBranch.parent = parent
myBranch.height=(parent.height)*(random heightFactorMin heightFactorMax)
myBranch.radius1 = parent.radius2
myBranch.radius2 = myBranch.radius1*(random taperingFactorMin taperingFactorMax)
in coordsys parent move myBranch [0,0,parent.height]
myRot = eulerAngles (random branchingXAngleMin branchingXAngleMax) 0 0
in coordsys parent rotate myBranch myRot
myRot = eulerAngles 0 0 (((360/numberOfBranches)*i)+(random branchingZAngleMin branchingZAngleMax))
in coordsys parent rotate myBranch myRot
in coordsys parent move myBranch [0,0,((random offSetFactorMin offSetFactorMax)*-parent.height)]
myBranch.wirecolor= (color(255-(255/branchingDepth*depth)) 0 0)
append branchesArray myBranch
branch myBranch (depth + 2)
)
)
)

fn deleteTree anArry=
(
for i = 1 to branchesArray.count by 1 do
(
if(isDeleted branchesArray[i] == false) then
(
delete branchesArray[i]
)
)
branchesArray.count=0
)

on generate_button pressed do
(
deleteTree branchingArray
rootTree = cone()
rootTree.height = trunkHeight
rootTree.radius1= trunkRadius
rootTree.radius2 = rootTree.radius1*(random taperingFactorMin taperingFactorMax)
rootTree.sides = trunkSides
rootTree.heightsegs = 1
rootTree.wirecolor = (color 0 255 0)
append branchesArray rootTree
branch rootTree 1
)

on trunkHeight_spinner changed amt do
(
trunkHeight = amt
)

on trunkRadius_spinner changed amt do
(
trunkRadius = amt
)

on trunkSides_spinner changed amt do
(
trunkSides = amt
)

on taperingFactorMin_spinner changed amt do
(
taperingFactorMin = amt
)

on taperingFactorMax_spinner changed amt do
(
taperingFactorMax = amt
)

on branchingDepth_spinner changed amt do
(
branchingDepth = amt
)

on branchingNumberMin_spinner changed amt do
(
branchingNumberMin = amt
)

on branchingNumberMax_spinner changed amt do
(
branchigNumberMax= amt
)

on offsetFactorMin_spinner changed amt do
(
offsetFactorMin = amt
)

on offsetFactorMax_spinner changedd amt do
(
offsetFactorMax = amt
)

on branchingXAngleMin_spinner changed amt do
(
branchingXAngleMin = amt
)

on branchingXAngleMax_spinner changed amt do
(
branchingXAngleMax = amt
)

on branchingZAngleMin_spinner changed amt do
(
branchingZAngleMin = amt
)

on branchingZAngleMax_spinner changed amt do
(
branchingZAngleMax = amt
)

on heightFactorMin_spinner changed amt do
(
heightFactorMin = amt
)

on heightFactorMax_spinner changed amt do
(
heightFactorMax = amt
)
)

Sunday, 3 November 2019

Exp_Animation_06

3D 디자인을 위한 Zoetrope 디자인

3D 모델 Zoetrope을 제작하기 위해 역동적인 변화가 일어나는 모델을 제작하고자 하였다. 그러기 위해 3D Max에서 가지를 제작하는 스크립트를 찾아 이를 활용하였으나 가지가 Cone을 제작하는 형식으로 제작되어 3D printing 시 오류가 날 것 같고 원하는 모형으로 나오지 않아 코드를 변화하거나 다른 방식을 활용하여 Zoetrope을 제작할 예정이나 Scipt를 활용한 역동적인 디자인을 알게 되어 이를 활용한 모델링을 제작하기 위해 연구가 필요할 듯하다.

3D Model Zoetrope Design

To create the 3D model Zoetrope, we wanted to create a model with dynamic changes. In order to do this, we found a script to make branches in 3D Max and utilized them, but the branches were produced in the form of making Cone. Knowing the dynamic design using the schedule or the Script, it is likely that research will be required to produce a model using the design.

Process

3Ds Max -> 360Fusion -> Cura





Exp_Animation_05

숫자를 활용한 Zoetrope 디자인

시간을 나타내기 위해 숫자를 활용한 Zoetrope 디자인을 제작하였다. 1-60까지 60초동안 변화하는 것을 목표로 하였고 그를 위해 다양한 시행착오들을 겪었다.
또한 Zoetrope의 비어있는 자리를 채우기 위해 30도식 돌리다가 15도를 한번 돌려 비어있는 공간을 채운 Zoetrope의 형태 또한 확인하였다.

또한 작은 Zoetrope에 넣을 디자인으로 상자를 통한 변화와 파티클을 통한 디자인을 시도해 보았다.

Zoetrope design using numbers

Zoetrope designs were created using numbers to represent time. It was aimed to change for 60 seconds from 1-60. Various trials and errors happened while I was looking for the right pattern.

Also, I tried to change the design through the box and the design through the particles as a design for the small Zoetrope.