hi-res triangulated mesh from 123D,

automatically created texture map from 123D,

and test render from Houdini with 500 instanced lambs.

skip to main |
skip to sidebar
## Saturday, December 21, 2013

###
Autodesk 123D test

## Friday, December 20, 2013

## Thursday, December 19, 2013

###
links updated

## Thursday, December 5, 2013

## Saturday, August 24, 2013

Process Scheduling Algoithms:

Round Robin:

each process gets a strict amount of time on the CPU

(its quantum is typically 10 to 100 ms)

seems fair

easy to implement

Round Robin is pre-emptive - its specifically designed for time-sharing systems

there is no risk of starvation*

but if the timeslice is too big round robin tends to a FCFS system

if the quantum is too small, RR tends to become

Typically Round Robin has a better average response time than a SJF - Shortest Job First system.

A potential deficiency of Round Robin:** **processes that are IO-bound* often do not use their full quantum before being interrupted by an IO operation. Once blocked and evicted, they then get moved to the back of the queue, so their spot in the queue is essentially lost to another process. they go 'hungry' for CPU time

so Round Robin as a scheduling algorithm is not really as fair as it might initially seem.

* Starvation / indefinite blocking : can occur when a scheduling system leaves a lower priority job indefinitely

* IO bound Process - the process spends more time frequently interrupted by IO operations, and subject to context switches thus often doesn't use its full quantum of CPU time.

* CPU bound process - spends more time on average being executed in the CPU,

than being interrupted by IO operations.

Youtube videos of scheduling algorithms in action:

SRTF https://www.youtube.com/watch?v=67ZDlvwgSV8SRTF

(Priority Scheduling, a 'pre-emptive verison' of SJF)

Round Robin

__https://www.youtube.com/watch?v=GjrxO-PDPdk__
## Friday, August 23, 2013

###
Edsger W. Dijkstra.

## Monday, July 22, 2013

###
aberration post updated

## Wednesday, May 29, 2013

## Tuesday, April 23, 2013

###
tips and tricks for digital number formats, logic gates and Boolean Algebra.

## Friday, April 5, 2013

###
Designing circuits in logisim...

## Saturday, March 30, 2013

## Sunday, March 3, 2013

###
IEEE-754 (anon. post)

*Summary of IEEE-754*

This is a summary of what I understand about IEEE-754 notation.

*CMIIW ?*

For the purpose of explanation, single precision is chosen.

*Normalised:*
What is being written?

IEEE-754 is another way to represent the scientific notation.

Example of scientific notation : 1.00 x 10^5

Where 1.00 represents the fraction part (Mantissa), and 5 represent the exponent part. 10 represents the radix.

Note that the explanation below uses binary.

Notation :

First bit = Sign of the number, 0 as positive, 1 as negative - the 'sign bit'

The next 8 bits = the Exponent part. Represented by 8-bit (in excess-127 format)
## Saturday, March 2, 2013

###
handy summary of digital Number formats:

*one of my fellow students posted (anon.) this handy summary of*

*digital Number formats:*

-------------------------------------------------------------------

*8-bit unsigned*

Range : 0 to 255

Note : Always positive . Start from 00000000 (0) to 11111111 (255).

Example :

69 = 01000101

*8-bit signed magnitude*

Range : -127 to 127

Note : Two zeros, +0 (00000000) and -0 (-00000000).

MSB is only the positive or negative sign, with 0 as positive and 1 as negative, contain no value.

Start from 10000000 (-127) to 01111111 (127).

Example :

+69 = 01000101

-69 = 11000101

*8-bit One's Complement*

Range : -127 to 127

Note : Two zeros, +0 (00000000) and -0 (11111111).

MSB is always negative and has value of -127. Start from 10000000 (-127) to 01111111 (127).

Example :

+69 = 01000101

-69 = 10111010

How to get this from signed number (!!) :

If MSB of signed number is 0 (positive), same as signed number

If MSB of signed number is 1 (negative), keep MSB as 1, invert the rest of the bits.

NB. on my current practice exam questions there are a number of questions such as the following:

Which of the following statements about the 8 bit binary number 10001111 is true ?

a) the number is odd when considered to be in signed magnitude, 2's complement, 1's complement, or excess 128 bit formats.

*In general a binary number ending in a zero is usually even ***unless it is in 1's complement format and its negative**, in which case ending in a zero will cause it to be negative and a bin number ending in 1 will be positive, but for all other cases , as per normal - a bin ending in 0 will be even and ending in a 1 will be negative.

*8-bit Two's Complement*

Range : -128 to 127

Note : -128 written as 100000000, only one zero; +0 (00000000).

MSB is always negative and has value of -128. Start from 10000000 (-128) to 01111111 (127).

Example :

+69 = 01000101

-69 = 10111011

How to get this from signed number (?) :

If MSB of signed number is 0 (positive), same as signed number

If MSB of signed number is 1 (negative), keep MSB as 1, invert the rest of the bits, add 1 to the LSB.

Addition in 2's compliment format

when adding bit sequences (on paper) and you have a 'carry bit' on the left at the MS end

(most significant end) you can simply**discard** this carry bit.

*8-bit excess-128*

Range : -128 to 127

Note : From decimal number, add 128 to the value and write the 8-bit unsigned.

Start from 00000000 (-128) to 11111111 (127).

Example :

+69 = 69 + 128 = 197 = 11000101

-69 = -69 + 128 = 59 = 00111011

*Binary to Octal/Hex and vice versa*

Start from the right hand side (or the least significant bit) and group the bits in groups of three for octal, and four for hexadecimal. Then treat each group as an individual binary string and the result is the

*Octal/Hexadecimal representation. *

For Binary strings that don't divide evenly into groups of three or four, just add as many zeros as needed to the left side.

Example :

1000101 can become 001 | 000 | 101 for the purpose of conversion (note the

added zeros to the left side)

Hence 69 (or 1000101) is 105 in Octal.

To convert Octal or Hexadecimal to Binary, all you need to do is expand each character into the appropriate number of binary digits (three for octal or four for Hex)

Also, if you want to convert from Hex to Octal or vise-versa, the easiest

way to do it is use conversion to binary in between.
## Tuesday, February 26, 2013

###
CREDIT APPLICATION

## more Houdnik links (Alphabetical)

## About Me

Merry Xmas, I used a lamb from a nativity scene...

original object,

hi-res triangulated mesh from 123D,

automatically created texture map from 123D,

and test render from Houdini with 500 instanced lambs.

hi-res triangulated mesh from 123D,

automatically created texture map from 123D,

and test render from Houdini with 500 instanced lambs.

some renderman / RSL /OSL links added to my list:

thanks to Jimmy Gunawan and Michael Anders

http://accad.osu.edu/~smay/RManNotes/

http://michelanders.blogspot.com.au/p/creating-blender-26-python-add-on.htm

http://blenderthings.blogspot.nl/p/open-shading-language-for-blender.html

http://web.engr.oregonstate.edu/~mjb/prman/shaderfunctions.html

http://www.renderman.org/

http://www.csee.umbc.edu/~ebert/book/book.html

thanks to Jimmy Gunawan and Michael Anders

http://accad.osu.edu/~smay/RManNotes/

http://michelanders.blogspot.com.au/p/creating-blender-26-python-add-on.htm

http://blenderthings.blogspot.nl/p/open-shading-language-for-blender.html

http://web.engr.oregonstate.edu/~mjb/prman/shaderfunctions.html

http://www.renderman.org/

http://www.csee.umbc.edu/~ebert/book/book.html

Round Robin:

each process gets a strict amount of time on the CPU

(its quantum is typically 10 to 100 ms)

seems fair

easy to implement

Round Robin is pre-emptive - its specifically designed for time-sharing systems

there is no risk of starvation*

but if the timeslice is too big round robin tends to a FCFS system

if the quantum is too small, RR tends to become

Typically Round Robin has a better average response time than a SJF - Shortest Job First system.

A potential deficiency of Round Robin:

so Round Robin as a scheduling algorithm is not really as fair as it might initially seem.

* Starvation / indefinite blocking : can occur when a scheduling system leaves a lower priority job indefinitely

* IO bound Process - the process spends more time frequently interrupted by IO operations, and subject to context switches thus often doesn't use its full quantum of CPU time.

* CPU bound process - spends more time on average being executed in the CPU,

than being interrupted by IO operations.

Youtube videos of scheduling algorithms in action:

SRTF https://www.youtube.com/watch?v=67ZDlvwgSV8SRTF

(Priority Scheduling, a 'pre-emptive verison' of SJF)

Round Robin

...the manuscripts of Edsger W. Dijkstra, 1930–2002

http://www.cs.utexas.edu/users/EWD/

example of pathfinding from macha

Vimeo Animation: https://vimeo.com/10569955

http://www.cs.utexas.edu/users/EWD/

example of pathfinding from macha

Vimeo Animation: https://vimeo.com/10569955

Chromatic Aberration post from aeons ago updated with link to After Effects tutorial

by Cyril Kotecky (Jul 19, 2013.)

by Cyril Kotecky (Jul 19, 2013.)

from one of my colleagues - thanks Anon.

Knowing this only is not enough, you NEED practice. For those of you who are going to say “challenge accepted”, go on, make my day.

- You must be really comfortable in interchanging between types of number representation.
- Write down the RANGE for every number representation available in your notes.
- A XOR B = ~AB + ~BA
- De Morgan’s rule, De Morgan’s rule everywhere. Not only on Boolean algebra, some ALU questions have them.
- If there seems to be no answer, try using De Morgan’s rule if appropriate.
- From my experience, (tutors please correct me if I am wrong), using De Morgan’s rule on 3 variable also works.
- BOOLEAN IDENTITIES, the easiest and most important including:

Knowing this only is not enough, you NEED practice. For those of you who are going to say “challenge accepted”, go on, make my day.

- How to convert from one’s complement to two’s complement? add the sign to the number. e.g. 1110 in one’s complement: add the sign to the number, 1110 + 1 = 1111 in two’s complement. second example, 0110 in one’s complement: add the sign to the number, 0110 + 0 = 0110 in two’s complement.
- Conversely, from two’s complement to one’s complement, take the sign number instead of adding.
- Negative numbers also have odd and even.
- Two’s complement, signed number, unsigned, excess-128: don’t affect whether it is odd or even.
- One’s complement however, when negative: the LSB is 1 for even, 0 for odd. When positive à 0 for even, 1 for odd.
- Binary Coded Decimal: e.g. 789, become 0111 1000 1001. Always use 4 bits for each number (since max is 9, 1001).
- I wasted a lot of time simplifying the sum of products on questions 53 – 57 on sample midsem paper. IMO it is quicker to just sub in A B C with their value on the table and see if the result matches.
- Use ruler for questions like q110.
- In questions with latches, POSITION OF Q AND ~Q IS IMPORTANT AND MAY AFFECT ANSWER.
- 2 inputs XOR gate and NAND gate can be used as an inverter. If one input is 1 and is fixed, no matter what the other input is, the output will be that other input inverted. e.g. 1 XOR A = ~A. 1 NAND A = ~A.

Logisim is great to prototype your circuits. This one worked, thankfully - as I also designed it on paper a couple of times which took a while :D

If any 2 of 3 bits of input in an incoming bitstream (B) are 1's then X will be 1,

(the X output LED will light up)

and if 3 1's re detected - the Y output will be 1

(the Y LED will light up)

You can 'poke' the clock to make it tick over after you've adjusted your inputs, or you can mke it tick automatically at a given Hz.

If any 2 of 3 bits of input in an incoming bitstream (B) are 1's then X will be 1,

(the X output LED will light up)

and if 3 1's re detected - the Y output will be 1

(the Y LED will light up)

You can 'poke' the clock to make it tick over after you've adjusted your inputs, or you can mke it tick automatically at a given Hz.

This is a summary of what I understand about IEEE-754 notation.

For the purpose of explanation, single precision is chosen.

IEEE-754 is another way to represent the scientific notation.

Example of scientific notation : 1.00 x 10^5

Where 1.00 represents the fraction part (Mantissa), and 5 represent the exponent part. 10 represents the radix.

Note that the explanation below uses binary.

Notation :

First bit = Sign of the number, 0 as positive, 1 as negative - the 'sign bit'

The next 8 bits = the Exponent part. Represented by 8-bit (in excess-127 format)

FORBIDDEN à 00000000 and 11111111 are forbidden for normalised single precision, will be explained later.

00000000 as an exponent is ONLY FOR DENORMALISED numbers

11111111 as exponent is ONLY FOR INFINITY.

00000000 as an exponent is ONLY FOR DENORMALISED numbers

11111111 as exponent is ONLY FOR INFINITY.

The
last 23 bits = the Fraction part (aka the Mantissa).

The next 23 bits represent the bits to the right of the binary point. To the left of the binary point is always a 1 (strictly for normalised - and therefore it can be disregarded and assumed to be a one).

All 0 (twenty-three 0's) represents the value of 1.0 while all 1 (twenty-three 1's) represents the value of*approximately* 2.0.

Note : Binary point is the dot between the number of the fraction part,

*like a decimal point - but in binary *:)

Range :

For negative : From -2.0 x 2^(127) to -1.0 x 2^(-126)

For positive : From 1.0 x 2^(-126) to 2.0 x 2^(127)

Example :

1.125 (decimal) in IEEE-754 :

In scientific notation of binary: 1.125 = 1.001 x 2^(0).

Sign : Positive (0)

Fraction part : 1.001 (2^0 + 2^(-3))

Exponent part : 0

Solve the Exponent part first; exponent part must be in the form of 8-bit excess-127.

0 in 8-bit excess-127 à 10000000

Fraction part à In IEEE-754, ignore the 1 to the left of the binary point, and COPY the numbers to the right of the binary point (001 in this example) and then fulfill the 23 bits requirement (in this case 001 + twenty more 0s).

Therefore the 1.125 in IEEE-754 notation become:

0 10000000 00100000000000000000000

(Spaces between the sign, exponent and fraction were used to make things more visible)

To make it shorter, convert to Hexadecimal

1.125 in IEEE-754 notation in hexadecimal = 40100000

*Denormalised*
Basically
the same as normalised. However, exponent part is ALWAYS 00000000.
Although in excess-127 00000000 is considered to be -127, FOR
denormalised form, 00000000 indicates that the exponent is -126, but the
number to the left of the binary point of the fraction part is ALWAYS
0.

Note :

For denormalised, all 0 in the fraction part represents the value of 0.0 and all 1 in the fraction part represents the value of approximately 1.0.

*What can be written with denormalised?*
Example : 0.001 x 2^(-126)

Fraction part is ALWAYS BELOW 1.0, exponent part is ALWAYS -126.

Range :

Negative : From 0 to -1 x 2^(-126)

Positive : From 0 to 1 x 2^(-126)

Note : Two zeros exist: +0 and -0.

Smallest possible non zero value à -2^(-23) * 2^(-126) and 2^(-23) * 2^(-126)

*Infinity *
Basically the same thing except the exponent part is 11111111 with all 0 as fraction part.

Note : There exist positive infinity and negative infinity.

32 bit and 64 bit floating point formats:

The next 23 bits represent the bits to the right of the binary point. To the left of the binary point is always a 1 (strictly for normalised - and therefore it can be disregarded and assumed to be a one).

All 0 (twenty-three 0's) represents the value of 1.0 while all 1 (twenty-three 1's) represents the value of

Note : Binary point is the dot between the number of the fraction part,

Range :

For negative : From -2.0 x 2^(127) to -1.0 x 2^(-126)

For positive : From 1.0 x 2^(-126) to 2.0 x 2^(127)

Example :

1.125 (decimal) in IEEE-754 :

In scientific notation of binary: 1.125 = 1.001 x 2^(0).

Sign : Positive (0)

Fraction part : 1.001 (2^0 + 2^(-3))

Exponent part : 0

Solve the Exponent part first; exponent part must be in the form of 8-bit excess-127.

0 in 8-bit excess-127 à 10000000

Fraction part à In IEEE-754, ignore the 1 to the left of the binary point, and COPY the numbers to the right of the binary point (001 in this example) and then fulfill the 23 bits requirement (in this case 001 + twenty more 0s).

Therefore the 1.125 in IEEE-754 notation become:

0 10000000 00100000000000000000000

(Spaces between the sign, exponent and fraction were used to make things more visible)

To make it shorter, convert to Hexadecimal

1.125 in IEEE-754 notation in hexadecimal = 40100000

Note :

For denormalised, all 0 in the fraction part represents the value of 0.0 and all 1 in the fraction part represents the value of approximately 1.0.

Fraction part is ALWAYS BELOW 1.0, exponent part is ALWAYS -126.

Range :

Negative : From 0 to -1 x 2^(-126)

Positive : From 0 to 1 x 2^(-126)

Note : Two zeros exist: +0 and -0.

Smallest possible non zero value à -2^(-23) * 2^(-126) and 2^(-23) * 2^(-126)

Note : There exist positive infinity and negative infinity.

32 bit and 64 bit floating point formats:

-------------------------------------------------------------------

Range : 0 to 255

Note : Always positive . Start from 00000000 (0) to 11111111 (255).

Example :

69 = 01000101

Range : -127 to 127

Note : Two zeros, +0 (00000000) and -0 (-00000000).

MSB is only the positive or negative sign, with 0 as positive and 1 as negative, contain no value.

Start from 10000000 (-127) to 01111111 (127).

Example :

+69 = 01000101

-69 = 11000101

Range : -127 to 127

Note : Two zeros, +0 (00000000) and -0 (11111111).

MSB is always negative and has value of -127. Start from 10000000 (-127) to 01111111 (127).

Example :

+69 = 01000101

-69 = 10111010

How to get this from signed number (!!) :

If MSB of signed number is 0 (positive), same as signed number

If MSB of signed number is 1 (negative), keep MSB as 1, invert the rest of the bits.

NB. on my current practice exam questions there are a number of questions such as the following:

Which of the following statements about the 8 bit binary number 10001111 is true ?

a) the number is odd when considered to be in signed magnitude, 2's complement, 1's complement, or excess 128 bit formats.

Range : -128 to 127

Note : -128 written as 100000000, only one zero; +0 (00000000).

MSB is always negative and has value of -128. Start from 10000000 (-128) to 01111111 (127).

Example :

+69 = 01000101

-69 = 10111011

How to get this from signed number (?) :

If MSB of signed number is 0 (positive), same as signed number

If MSB of signed number is 1 (negative), keep MSB as 1, invert the rest of the bits, add 1 to the LSB.

Addition in 2's compliment format

when adding bit sequences (on paper) and you have a 'carry bit' on the left at the MS end

(most significant end) you can simply

Range : -128 to 127

Note : From decimal number, add 128 to the value and write the 8-bit unsigned.

Start from 00000000 (-128) to 11111111 (127).

Example :

+69 = 69 + 128 = 197 = 11000101

-69 = -69 + 128 = 59 = 00111011

Start from the right hand side (or the least significant bit) and group the bits in groups of three for octal, and four for hexadecimal. Then treat each group as an individual binary string and the result is the

For Binary strings that don't divide evenly into groups of three or four, just add as many zeros as needed to the left side.

Example :

1000101 can become 001 | 000 | 101 for the purpose of conversion (note the

added zeros to the left side)

Hence 69 (or 1000101) is 105 in Octal.

To convert Octal or Hexadecimal to Binary, all you need to do is expand each character into the appropriate number of binary digits (three for octal or four for Hex)

Also, if you want to convert from Hex to Octal or vise-versa, the easiest

way to do it is use conversion to binary in between.

I have applied for credit for 1st yr Comp Science at the University of QLD,

and I hope to continue with second yr subjects.

and I hope to continue with second yr subjects.

Subscribe to:
Posts (Atom)

- [od]force
- 3daet.com
- 42-vfx-breakdowns
- a52
- aearon.de
- algorithmic botany.
- andrew schneider
- Base FX
- Black Ginger
- blackmountain.de/
- booyabase.de
- cgpipeline.com
- circle.uncontrol.com
- CMIVFX Training
- CuttingEdgePost
- das-werk.de
- depotvisuals
- derivative.ca/
- eidsheim.info
- enoni.de
- exocortex/
- florianwitzel
- framestore
- frenchdog.wordpress.com
- fxguide
- geneome.net
- guillaumefradi
- houdinitools.com
- http://neonbulbs80.blogspot.jp/
- hudach.wordpress.com (not english)
- I,Houdini
- jaideepkhadilkar blog
- Jellyfishpictures
- khanacademy
- kubaroth.com
- Learning3dfromscratch blogspot
- Matt Ebb - mke3
- meindbenderStudios
- MHUG
- pixar.com/research
- previzart.com
- procedural.com/
- rsp.com.au
- Ron Fedkiw
- Sam Hodge
- sateeshmalla.com
- serrao3d.com
- tmdag.com
- touchDesigne/
- tutorial.math.lamar.edu
- vi lovers
- wolfbrother.blogspot.com