Difference between revisions of "Element:FILT"

From The Powder Toy
Jump to: navigation, search
(I've replaced the ARAY Conduit explanation for something more informative. I've added several sections about the uses of FILT, and I've added a couple links to very useful FILT tutorials. I may have made a mistake here or there. I'll do ARAY next.)
(Decoration Color Changing)
 
(11 intermediate revisions by 7 users not shown)
Line 37: Line 37:
 
| highpressuretransition =  
 
| highpressuretransition =  
 
}}
 
}}
 +
 +
== Term explanation ==
 +
Wavelength and spectrum both refer to the ctype of a particle that can hold a 30 bit value.
 +
Sparked and SPRKed both refer to the SPRK particle in TPT having been applied to a metal.
 +
Filter is the same as FILT. FILT is the term you see when you mouse over the particle in TPT.
  
 
== Usage ==
 
== Usage ==
Line 51: Line 56:
 
=== {{Material| ARAY}} Conduit ===
 
=== {{Material| ARAY}} Conduit ===
  
Moving signals with ARAY is very fast, but unlike {{Material| INST}}, it isn't instant. While ARAY isn't exactly the fastest, it can be half the size of a bunch of INST propagating the same amount of data.
+
An ARAY wire is composed of ARAYs which activate each other in sequence. When an ARAY is activated it creates a ray of BRAY. The BRAY has a life of 30 so unless you’re not using that wire often, you’ll need to find a way to remove the BRAY before the next SPRK cycle. You could do this by using a brown BRAY ray but most of the time it is easier to just place transparent particles along its path instead. There are many transparent particles but FILT is the most common. For more information on ARAY visit its page here. {{Material| ARAY}}
 
 
There are three kinds of BRAY that can be created by an ARAY sparking a specific conductor while next to it. The first kind is the simplest, when an ARAY is Sparked by any conductor other than PSCN and INST it will shoot a BRAY beam. This BRAY beam has 30 life on creation, so unless you want to wait 30 frames to fire it again, you should find some way to get ride of the BRAY. FILT, ARAY, INVS, INWR and STOR allow BRAY through them. If you cover the journey from start to end with one or more of these elements then it will travel any distance but will be unable to create a BRAY because there are no empty spaces, therefore eliminating the need for something to get ride of the BRAY.
 
 
 
For more general info on ARAY you can visit the {{Material| ARAY}} page.
 
  
The most relevant use of ARAY is in its reaction to passing through FILT. When you fire an ARAY it will move through each space until it hits a barrier, note that BRAY itself is considered a barrier so you need to clear BRAY away or prevent it from being created if you want to avoid hitting it. FILT is not a barrier so BRAY will travel through it. While BRAY is within the FILT, the FILT will effect the BRAY's wavelength based on the FILT's mode and FILT's own wavelength. By default, a BRAY is created with a wavelength who's bits are all set which is what gives it its white color. FILT will do an operation based on it's mode where '''A''' is the incoming BRAY's wavelength and '''B''' is the FILT's wavelength. The FILT will take each bit and operate on it using '''A''' and '''B''' as it's two inputs. '''Q''' will be it's output.
+
=== Coloring properties for Photons and BRAY ===
 
 
While using ARAY you may be troubled with a situation where you can't put down something like FILT to fill in the empty space, but you still want to remove the BRAY before the next {{Material| SPRK}} cycle. In this instance you can do a few different things. There are many ways to remove elements but only one includes ARAY. When you SPRK an ARAY with PSCN it will create a special kind of bray. This bray only has a life of 2, isn't affected by FILT, and can pass through and delete the white type of BRAY.
 
 
 
=== Filter for Photons and BRAY ===
 
  
 
[[File:Waves.gif|frame]]
 
[[File:Waves.gif|frame]]
Line 68: Line 65:
 
You can learn more about wavelengths [[Wavelengths|here.]]
 
You can learn more about wavelengths [[Wavelengths|here.]]
  
The visible color depends only on amount of bits in 5 bit groups: red, yellow, green, cyan, and blue. They are 9, 3, 6, 3, and 9 bits long, respectively. The position of bits within a group is preserved, but does not affect particle's color. More specifically color only depends on ''proportions'' of those amounts.   
+
The visible color depends only on the amount of bits in 5 bit groups: red, yellow, green, cyan, and blue. They are 9, 3, 6, 3, and 9 bits long, respectively. The position of bits within a group is preserved, but does not affect the particle's color. More specifically, color only depends on the ''proportions'' of those amounts.   
To get white color, set the ctype to 0x3FFFFFFF or -1, which will enable all the wavelengths.
+
To set all bits, set the ctype to 0x3FFFFFFF or -1, which will enable all the wavelengths and make it white.
  
FILT uses the ctype field to store wavelengths too, however if ctype is 0, wavelengths are calculated from its temperature: it slowly changes from blue when cold, to red when hot. More specifically, a group of 5 bits is set, and starting from 0°C, every 40°C the group is red-shifted by 1, and after 25 shifts, at 1000°C, the group is shifted to the most red wavelengths.
+
FILT uses the ctype field to store wavelengths too, however, if the ctype is 0, wavelengths will be calculated from its temperature instead: it will slowly shift towards blue when cold, and to red when hot. Technically, a group of 5 bits is set, and starting from 0°C, every 40°C the group is red-shifted by 1, and after 25 shifts, at 1000°C, the group is shifted to largest bits in the red part of the spectrum.
  
 
=== Logic Component for Electronics ===
 
=== Logic Component for Electronics ===
  
Because of the FILT's ability to change a BRAY or PHOT's Wavelength given a specific logical rule, you can treat is as a really powerful logical operator that single handedly allows for complex and large sized computations. It has the ability to store large amounts of binary info into a very small space. For a practiced person, FILT electronics are far simpler than any alternative. There is a list of modes below. Each mode fulfills a purpose. The '''and''' ,'''not''', '''xor''', and '''or''' gates give access to the base elements of a logic system. With this logic system there have been many who have made computers with enough room to spare accessories like a screen, keyboard, and large ROM.
+
Because of the FILT's ability to change a BRAY’s wavelength given a mode, you can treat it as a really powerful logical operator that single handedly allows for complex and large sized computations. It has the ability to store large amounts of binary info into a very small space (30 bits per pixel). For a practiced person, FILT electronics are far easier to set up than INST or metal based electronics. There is a list of modes below. Each mode fulfills a purpose. The '''and''' ,'''not''', '''xor''', and '''or''' gates give access to the base elements of a logic system. With this logic system there have been many who have made computers with enough room to spare accessories like a screen, keyboard, and touch screens!
 
 
  
 
FILT has many operation modes determined by its tmp property:
 
FILT has many operation modes determined by its tmp property:
Line 82: Line 78:
  
 
<ol start="0">
 
<ol start="0">
<li>"set" mode: FILT's spectrum is copied into PHOT particles that pass through it</li>
+
<li>"set colour" mode: FILT's spectrum is copied into PHOT particles that pass through it</li>
 
<li>"and" mode: A bitwise '''and''' is performed on PHOT's and FILT's spectrums and the result is stored in the PHOT particle, any wavelengths not present in FILT will be removed from PHOT.</li>
 
<li>"and" mode: A bitwise '''and''' is performed on PHOT's and FILT's spectrums and the result is stored in the PHOT particle, any wavelengths not present in FILT will be removed from PHOT.</li>
 
<li>"or" mode: Performs a bitwise '''or''': all wavelengths present in FILT are "enabled" in PHOT, if not already.</li>
 
<li>"or" mode: Performs a bitwise '''or''': all wavelengths present in FILT are "enabled" in PHOT, if not already.</li>
<li>"sub" mode: Performs a bitwise '''and-not''': all wavelengths present in FILT are subtracted from PHOT.</li>
+
<li>"subtract colour" mode: Performs a bitwise '''and-not''': all wavelengths present in FILT are subtracted from PHOT.</li>
 
<li>"red shift" mode: The wavelengths of a photon are red-shifted. The distance of the shift is calculated from the temperature '''only''': the ctype value of the FILT is ignored.. </li>
 
<li>"red shift" mode: The wavelengths of a photon are red-shifted. The distance of the shift is calculated from the temperature '''only''': the ctype value of the FILT is ignored.. </li>
 
<li>"blue shift" mode: Like "red shift", but the shifting direction is opposite, wavelengths are moved towards the blue end.</li>
 
<li>"blue shift" mode: Like "red shift", but the shifting direction is opposite, wavelengths are moved towards the blue end.</li>
<li>"nothing" mode: No spectrum changes are performed. Useful if you want to cross beams of PHOT and ARAY without mangling the spectrum</li>
+
<li>"no effect" mode: No spectrum changes are performed. Useful if you want to cross beams of PHOT and ARAY without mangling the spectrum</li>
 
<li>"xor" mode: Performs a bitwise '''xor''': all wavelengths present in FILT are "flipped" in PHOT's spectrum, that is, if some color was on, it turns off, and vice versa.</li>
 
<li>"xor" mode: Performs a bitwise '''xor''': all wavelengths present in FILT are "flipped" in PHOT's spectrum, that is, if some color was on, it turns off, and vice versa.</li>
 
<li>"not" mode: Performs a bitwise '''not''': all wavelengths of PHOT are flipped. Note that FILT's spectrum is ignored.</li>
 
<li>"not" mode: Performs a bitwise '''not''': all wavelengths of PHOT are flipped. Note that FILT's spectrum is ignored.</li>
Line 98: Line 94:
 
Any other tmp value makes FILT functionally equivalent to mode 6 (nothing). It is strongly recommended not to use any tmp's above those listed here, as the developers may add more modes for those tmp values in the future, which would break your save.  
 
Any other tmp value makes FILT functionally equivalent to mode 6 (nothing). It is strongly recommended not to use any tmp's above those listed here, as the developers may add more modes for those tmp values in the future, which would break your save.  
  
Almost all of these modes are all equivalent to an array of logic gates applying its logic across each of the thirty bits. FILT electronics are usually preformed by setting a BRAY to a specific value, and moving it through one or more FILT with a specific mode and/or value. Then reading the output. The output can be read by either putting it back into a line of FILT for later storage or calculation, or taken as either on or off, based on weather or not it could make it through the FILT.
+
Almost all of these modes are all equivalent to an array of logic gates applying its logic across each of the thirty bits. FILT electronics are usually performed by setting a BRAY to a specific value, and moving it through one or more FILT with a specific mode and/or value. Then reading the output. The output can be read by either putting it back into a line of FILT for later storage or calculation, or taken as either on or off, based on whether or not it could make it through the FILT.
  
FILT electronics sometimes use a common spark-able as an output, because if the operation that was preformed on the BRAY results in a zero, then the BRAY is terminated and nothing is sparked. In this way, you can get a binary 1 or 0 depending on weather or not the operation resulted in a 0. While this feature may be very useful sometimes, if it happens unexpectedly, you could be left without any BRAY at all and operation would stop. To avoid this, most people always set the 30th bit while doing their calculation so that there can be a zero in their calculations without it disappearing. For all operations this bit is ignored and exists solely to keep the BRAY around. But beware, having it there could seriously mess up your calculations if they include a part where they shift that bit out of place. Make sure to keep that bit where it belongs or get rid of it temporarily while you do something shifty.
+
FILT electronics sometimes use a common spark-able like iron or metal as a more straightforward output, because if the operation that was performed on the BRAY results in a zero, then the BRAY is terminated and nothing is sparked. In this way, you can get a binary 1 or 0 depending on whether or not the operation resulted in a 0. While this feature may be very useful sometimes, if it happens unexpectedly, you could be left without any BRAY at all and operation would stop. To avoid this, most people always set the 30th bit while doing their calculation even if a calculation results in zero they can still read it. For all operations this bit is ignored and exists solely to keep the BRAY around. Be aware that if any bit is shifted too much in any direction it will be launched off the spectrum and disappear.
  
 
=== FILT Memory Techniques ===
 
=== FILT Memory Techniques ===
Line 107: Line 103:
 
<ol start="1">
 
<ol start="1">
 
<li>Easy storage. Sometimes we just need to get our data stored. No need for a technique right? Easy storage is about using one FILT per value, so that you can reference it later.</li>
 
<li>Easy storage. Sometimes we just need to get our data stored. No need for a technique right? Easy storage is about using one FILT per value, so that you can reference it later.</li>
<li>Reference storage. Sometimes we have to work with some pretty large numbers. When your coding your computer, or if you are making a set of instructions for a printer, you don't want to have to write out these large, hard to remember numbers. Instead we can assign those big numbers to smaller and more manageable numbers. An example would be if you have five values. 537100575, 537085324, 536870975, 536870975, and 537052300. Each of these numbers are a direct data representation of a letter h, e, l, l, or o. Wouldn't it be nice if I could call them by their place in the alphabet? Just like this 8, 5, 12, 12, 15. Now instead of using around 18 bits to store a single letter, I'm using just 7</li>
+
<li>Reference storage. Sometimes we have to work with some pretty large numbers. When you're coding your computer, or if you are making a set of instructions for a printer, you don't want to have to write out these large, hard to remember numbers. Instead we can assign those big numbers to smaller and more manageable numbers. An example would be if you have five values. 537100575, 537085324, 536870975, 536870975, and 537052300. Each of these numbers are a direct data representation of a letter h, e, l, l, or o. Wouldn't it be nice if I could call them by their place in the alphabet? Just like this 8, 5, 12, 12, 15. Now instead of using around 18 bits to store a single letter, I'm using just 4. I still need those big numbers somewhere. But it’s better if I can assign them to smaller numbers.</li>
<li>FILT sharing storage. With this technique, you can write multiple values to the same FILT. Most of the time you use less than 7 bits in a FILT. This technique utilizes the remaining 23 bits by placing another 7 bits shifted onto the same spectrum. If you shift four seven bit numbers onto the same spectrum then that one FILT can be used for the storage of four numbers. If you want to single out a specific value from it you can just preform an '''and''' operation on it specifying the 7 bit range of binary that you want. Then to make it a normal number you just need to shift it a little. This technique can potentially quadruple your storage, but it's one requirement is that the size of the binary values have to be small enough to fit together on the same FILT. This is where using Reference Storage could help. Reference Storage would allow you to shrink the actual size of the value.</li>
+
<li>FILT Sharing storage. With this technique, you can write multiple values to the same FILT. Most of the time you use less than 7 bits in a FILT. This technique utilizes the remaining 23 bits by placing another 7 bits shifted onto the same spectrum. If you shift four seven-bit numbers onto the same spectrum then you would be using a forth of the space that you would have if you gave the number to its own FILT. If you want to single out a specific value from it you can just perform a bitwise '''and''' operation on it specifying the 7 bit range of binary that you want. Then to make it a normal number you just need to shift it a little. This technique can potentially quadruple your storage, but it's one requirement is that the size of the binary values have to be small enough to fit together on the same FILT. This is where using Reference Storage could help. Reference Storage would allow you to the reference which is smaller than the number it refers to.</li>
 
</ol>
 
</ol>
What if you used all of the techniques at once. The easy storage would contain the big complicated numbers. The reference storage would assign smaller numbers to those big numbers. And the sharing storage would make those small numbers take up less room. These three methods allowed mad-cow to make a storage system capable of holding the entire first book of the Harry Potter series.
+
What if you used all of the techniques at once? The easy storage would contain the big complicated numbers. The reference storage would assign smaller numbers to those big numbers. And the sharing storage would make those numbers share space on a single FILT. These three methods (used together) allowed mad-cow to make a storage system capable of holding the entire first book of the Harry Potter series.
  
 
{{Material| DTEC}} can be used to modify FILT's ctype: when PHOT or BRAY is within the DTEC's range, DTEC copies the spectrum into a line of directly adjacent FILT blocks, if any are present.
 
{{Material| DTEC}} can be used to modify FILT's ctype: when PHOT or BRAY is within the DTEC's range, DTEC copies the spectrum into a line of directly adjacent FILT blocks, if any are present.
Line 118: Line 114:
 
=== FILT serialization ===
 
=== FILT serialization ===
  
Serialization is the method in which someone would take a real world value and turn it into a single binary number. For example, if it is  {{ Temperature | t=15.7262610889436415882637491726072414036104654612263049463 }} outside then you could say it was 16.73 degrees. No need to be so exact since people can't really tell the different. Serialization in TPT is done by putting the proper detector next to some FILT and setting it to the right mode. The detector will detect it's surroundings and write it's findings into adjacent FILT in binary. Cracker1000 made a wonderful tutorial about how to set up serialization below.  
+
Serialization is a fancy word for taking real world analog data and converting it to a series of low precision numbers. Serialization in TPT is done by putting the proper detector next to some FILT and setting it to the right mode. The detector will detect its surroundings and write its findings into adjacent FILT in binary. Cracker1000 made a wonderful tutorial about how to set up serialization in one of the saves below.
  
 
=== Decoration Color Changing ===
 
=== Decoration Color Changing ===
  
When {{Material| CRAY}} fires through FILT, the deco color of the particles change to match the color of the FILT. BIZR also changes its deco color to the color of FILT when it passes through it.  
+
When {{Material| CRAY}} fires through FILT, the deco color of the particles change to match the color of the FILT. BIZR also changes its deco color to the color of FILT when it passes through it. This proves very useful if you want to create something with a specific color.
  
 
=== Extra ===
 
=== Extra ===
  
Photons are very similar to BRAY. They can go through FILT and are acted upon through that FILT in the same way. There is one distinct difference however. That difference is that {{Material| PHOT}} is an energy particle and as such, it is capable of stacking on top of itself up to the particle limit. It also has the bonus of being undying when it's life is set to 0. If you put a whole bunch of photons that all have their own wavelength into the same pixel, and if you take advantage of some DRAY, FRAY, or just DTEC, then you can read the top value on the stack of photons and discard the PHOT. The next PHOT is revealed and you can do the process again. Using this method you could have as much storage as you want.
+
Photons are very similar to BRAY. They can go through FILT and are acted upon through that FILT in the same way. There is one distinct difference however. That difference is that {{Material| PHOT}} is an energy particle and as such, it is capable of stacking on top of itself up to the particle limit. It also has the bonus of being undying when it's life is set to 0. If you put a whole bunch of photons that all have their own wavelength into the same pixel, and if you take advantage of some DRAY, FRAY, or just DTEC, then you can read the top value on the stack of photons and discard the PHOT. The next PHOT is revealed and you can do the process again. Using this method you could have as much storage as you want in a single pixel.
 +
When coloring FILT using the deco tool you will find that the color of the FILT isn’t as bright as anything that was colored the same way. The FILT will appear a fair amount darker than its surroundings. When you put a bray through it, it brightens briefly matching the deco color you painted it with.
  
 
== Notable Saves ==
 
== Notable Saves ==
Line 147: Line 144:
 
| {{ save | id=2300786}}
 
| {{ save | id=2300786}}
 
|}
 
|}
 +
 +
== See also ==
 +
[https://github.com/Visscera/TPTEye TPTEye] - a free, open-source tool for working with FILT and other spectrum-related elements.
  
 
[[Category:Elements]]
 
[[Category:Elements]]
 
[[Category:Solids]]
 
[[Category:Solids]]

Latest revision as of 00:24, 5 July 2023

FILT.png Filter
Properties
Section Solids
Spawn temperature 22°C
Heat Conductivity 100%
Relative weight 100
Gravity 0
Acid dissolve rate 0.1%
Flammability 0
State Solid
Misc properties
Source code


Term explanation

Wavelength and spectrum both refer to the ctype of a particle that can hold a 30 bit value. Sparked and SPRKed both refer to the SPRK particle in TPT having been applied to a metal. Filter is the same as FILT. FILT is the term you see when you mouse over the particle in TPT.

Usage

When created, Filter's color is based on its temperature. It will scale from dark blue to dark red, corresponding roughly to temperatures between 200 and 840°C. Filter has high temperature conductivity, and its color-changing makes it easy to see the flow of heat.

Filter will color BIZR and white BRAY passing through it. FILT can also change the color of passing PHOT and BRAY using binary logic, described in detail later. FILT is one of those seemingly boring, but in reality extremely complex and interesting elements. Here are some uses of FILT:

Heat Conductor

Probably the simplest way to use FILT, for a beginner at least, is to transfer heat. FILT has a very high (but not the highest) thermal conductivity and is nearly indestructible, making it ideal for transferring heat away from reactors to cooling fluids. It is also useful for debugging, as it changes color from blue at 0°C to red at 1000°C. (more detail on this in later sections). Note that if ambient heat is enabled, FILT's temperature will not be affected by the 'air temperature' around it, only items touching it.

ARAY Conduit

An ARAY wire is composed of ARAYs which activate each other in sequence. When an ARAY is activated it creates a ray of BRAY. The BRAY has a life of 30 so unless you’re not using that wire often, you’ll need to find a way to remove the BRAY before the next SPRK cycle. You could do this by using a brown BRAY ray but most of the time it is easier to just place transparent particles along its path instead. There are many transparent particles but FILT is the most common. For more information on ARAY visit its page here. ARAY

Coloring properties for Photons and BRAY

Waves.gif

BIZR/G/S, BRAY, FILT, and PHOT particles store their wavelengths in the ctype field. Wavelengths are just 30 bit numbers that are stored in the ctype of a particle.

You can learn more about wavelengths here.

The visible color depends only on the amount of bits in 5 bit groups: red, yellow, green, cyan, and blue. They are 9, 3, 6, 3, and 9 bits long, respectively. The position of bits within a group is preserved, but does not affect the particle's color. More specifically, color only depends on the proportions of those amounts. To set all bits, set the ctype to 0x3FFFFFFF or -1, which will enable all the wavelengths and make it white.

FILT uses the ctype field to store wavelengths too, however, if the ctype is 0, wavelengths will be calculated from its temperature instead: it will slowly shift towards blue when cold, and to red when hot. Technically, a group of 5 bits is set, and starting from 0°C, every 40°C the group is red-shifted by 1, and after 25 shifts, at 1000°C, the group is shifted to largest bits in the red part of the spectrum.

Logic Component for Electronics

Because of the FILT's ability to change a BRAY’s wavelength given a mode, you can treat it as a really powerful logical operator that single handedly allows for complex and large sized computations. It has the ability to store large amounts of binary info into a very small space (30 bits per pixel). For a practiced person, FILT electronics are far easier to set up than INST or metal based electronics. There is a list of modes below. Each mode fulfills a purpose. The and ,not, xor, and or gates give access to the base elements of a logic system. With this logic system there have been many who have made computers with enough room to spare accessories like a screen, keyboard, and touch screens!

FILT has many operation modes determined by its tmp property:

FiltTmp.gif
  1. "set colour" mode: FILT's spectrum is copied into PHOT particles that pass through it
  2. "and" mode: A bitwise and is performed on PHOT's and FILT's spectrums and the result is stored in the PHOT particle, any wavelengths not present in FILT will be removed from PHOT.
  3. "or" mode: Performs a bitwise or: all wavelengths present in FILT are "enabled" in PHOT, if not already.
  4. "subtract colour" mode: Performs a bitwise and-not: all wavelengths present in FILT are subtracted from PHOT.
  5. "red shift" mode: The wavelengths of a photon are red-shifted. The distance of the shift is calculated from the temperature only: the ctype value of the FILT is ignored..
  6. "blue shift" mode: Like "red shift", but the shifting direction is opposite, wavelengths are moved towards the blue end.
  7. "no effect" mode: No spectrum changes are performed. Useful if you want to cross beams of PHOT and ARAY without mangling the spectrum
  8. "xor" mode: Performs a bitwise xor: all wavelengths present in FILT are "flipped" in PHOT's spectrum, that is, if some color was on, it turns off, and vice versa.
  9. "not" mode: Performs a bitwise not: all wavelengths of PHOT are flipped. Note that FILT's spectrum is ignored.
  10. "QRTZ scattering" mode: Randomizes photons' velocity and randomly changes their color, just like QRTZ in old versions of The Powder Toy.
  11. "variable red shift" mode: Shift bits toward the red side by how many bits are to the right of the least significant bit.
  12. "variable blue shift" mode: Same as "variable red shift" but shifts towards the blue side of the spectrum instead.

Any other tmp value makes FILT functionally equivalent to mode 6 (nothing). It is strongly recommended not to use any tmp's above those listed here, as the developers may add more modes for those tmp values in the future, which would break your save.

Almost all of these modes are all equivalent to an array of logic gates applying its logic across each of the thirty bits. FILT electronics are usually performed by setting a BRAY to a specific value, and moving it through one or more FILT with a specific mode and/or value. Then reading the output. The output can be read by either putting it back into a line of FILT for later storage or calculation, or taken as either on or off, based on whether or not it could make it through the FILT.

FILT electronics sometimes use a common spark-able like iron or metal as a more straightforward output, because if the operation that was performed on the BRAY results in a zero, then the BRAY is terminated and nothing is sparked. In this way, you can get a binary 1 or 0 depending on whether or not the operation resulted in a 0. While this feature may be very useful sometimes, if it happens unexpectedly, you could be left without any BRAY at all and operation would stop. To avoid this, most people always set the 30th bit while doing their calculation even if a calculation results in zero they can still read it. For all operations this bit is ignored and exists solely to keep the BRAY around. Be aware that if any bit is shifted too much in any direction it will be launched off the spectrum and disappear.

FILT Memory Techniques

I'd say there are three linked ways to store your FILT, here they are.

  1. Easy storage. Sometimes we just need to get our data stored. No need for a technique right? Easy storage is about using one FILT per value, so that you can reference it later.
  2. Reference storage. Sometimes we have to work with some pretty large numbers. When you're coding your computer, or if you are making a set of instructions for a printer, you don't want to have to write out these large, hard to remember numbers. Instead we can assign those big numbers to smaller and more manageable numbers. An example would be if you have five values. 537100575, 537085324, 536870975, 536870975, and 537052300. Each of these numbers are a direct data representation of a letter h, e, l, l, or o. Wouldn't it be nice if I could call them by their place in the alphabet? Just like this 8, 5, 12, 12, 15. Now instead of using around 18 bits to store a single letter, I'm using just 4. I still need those big numbers somewhere. But it’s better if I can assign them to smaller numbers.
  3. FILT Sharing storage. With this technique, you can write multiple values to the same FILT. Most of the time you use less than 7 bits in a FILT. This technique utilizes the remaining 23 bits by placing another 7 bits shifted onto the same spectrum. If you shift four seven-bit numbers onto the same spectrum then you would be using a forth of the space that you would have if you gave the number to its own FILT. If you want to single out a specific value from it you can just perform a bitwise and operation on it specifying the 7 bit range of binary that you want. Then to make it a normal number you just need to shift it a little. This technique can potentially quadruple your storage, but it's one requirement is that the size of the binary values have to be small enough to fit together on the same FILT. This is where using Reference Storage could help. Reference Storage would allow you to the reference which is smaller than the number it refers to.

What if you used all of the techniques at once? The easy storage would contain the big complicated numbers. The reference storage would assign smaller numbers to those big numbers. And the sharing storage would make those numbers share space on a single FILT. These three methods (used together) allowed mad-cow to make a storage system capable of holding the entire first book of the Harry Potter series.

DTEC can be used to modify FILT's ctype: when PHOT or BRAY is within the DTEC's range, DTEC copies the spectrum into a line of directly adjacent FILT blocks, if any are present.

LDTC can also be used to modify FILT's ctype: when it detects PHOT, BRAY, or even FILT itself, it will copy the spectrum only into a line or dot of FILT directly opposite the detected element. Because of how precise yet versatile LDTC is, LDTC is quickly taking over DTEC in most FILT based electronics.

FILT serialization

Serialization is a fancy word for taking real world analog data and converting it to a series of low precision numbers. Serialization in TPT is done by putting the proper detector next to some FILT and setting it to the right mode. The detector will detect its surroundings and write its findings into adjacent FILT in binary. Cracker1000 made a wonderful tutorial about how to set up serialization in one of the saves below.

Decoration Color Changing

When CRAY fires through FILT, the deco color of the particles change to match the color of the FILT. BIZR also changes its deco color to the color of FILT when it passes through it. This proves very useful if you want to create something with a specific color.

Extra

Photons are very similar to BRAY. They can go through FILT and are acted upon through that FILT in the same way. There is one distinct difference however. That difference is that PHOT is an energy particle and as such, it is capable of stacking on top of itself up to the particle limit. It also has the bonus of being undying when it's life is set to 0. If you put a whole bunch of photons that all have their own wavelength into the same pixel, and if you take advantage of some DRAY, FRAY, or just DTEC, then you can read the top value on the stack of photons and discard the PHOT. The next PHOT is revealed and you can do the process again. Using this method you could have as much storage as you want in a single pixel. When coloring FILT using the deco tool you will find that the color of the FILT isn’t as bright as anything that was colored the same way. The FILT will appear a fair amount darker than its surroundings. When you put a bray through it, it brightens briefly matching the deco color you painted it with.

Notable Saves

A thermometer using FILT.
A spectrum analyzer, which can detect the color of incoming photons.
A tutorial about setting and manipulating BRAY values with FILT.
A tutorial about serializing all environment variables into FILT spectrum and back.
Lesson 2 of subframe lessons, on FILT.

See also

TPTEye - a free, open-source tool for working with FILT and other spectrum-related elements.