diff --git a/Assets/Klak/Wiring/Basic/HSBColor.cs b/Assets/Klak/Wiring/Basic/HSBColor.cs
new file mode 100644
index 0000000..adaf6a0
--- /dev/null
+++ b/Assets/Klak/Wiring/Basic/HSBColor.cs
@@ -0,0 +1,64 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+
+namespace Klak.Wiring
+{
+    [AddComponentMenu("Klak/Wiring/Convertion/HSB Color")]
+    public class HSBColor : NodeBase
+    {
+        #region Editable properties
+
+        [SerializeField, Range(0, 1)]
+        float _hue = 0;
+
+        [SerializeField, Range(0, 1)]
+        float _saturation = 1;
+
+        [SerializeField]
+        float _brightness = 1;
+
+        #endregion
+
+        #region Node I/O
+
+        [Inlet]
+        public float hue {
+            set {
+                _hue = value;
+                if (enabled) UpdateAndInvoke();
+            }
+        }
+
+        [Inlet]
+        public float saturation {
+            set {
+                _saturation = value;
+                if (enabled) UpdateAndInvoke();
+            }
+        }
+
+        [Inlet]
+        public float brightness {
+            set {
+                _brightness = value;
+                if (enabled) UpdateAndInvoke();
+            }
+        }
+
+        [SerializeField, Outlet]
+        ColorEvent _colorEvent = new ColorEvent();
+
+        #endregion
+
+        #region Private members
+
+        void UpdateAndInvoke()
+        {
+            _colorEvent.Invoke(Color.HSVToRGB(_hue, _saturation, _brightness));
+        }
+
+        #endregion
+    }
+}
diff --git a/Assets/Klak/Wiring/Basic/HSBColor.cs.meta b/Assets/Klak/Wiring/Basic/HSBColor.cs.meta
new file mode 100644
index 0000000..7e5c5c8
--- /dev/null
+++ b/Assets/Klak/Wiring/Basic/HSBColor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a163ee3cdea6cbf4ca2a23ee3f2c09c1
+timeCreated: 1492926315
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs
new file mode 100644
index 0000000..4d5918e
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs
@@ -0,0 +1,45 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+using UnityEditor;
+
+namespace Klak.Wiring
+{
+    [CanEditMultipleObjects]
+    [CustomEditor(typeof(HSBColor))]
+    public class HSBColorEditor : Editor
+    {
+        SerializedProperty _hue;
+        SerializedProperty _saturation;
+        SerializedProperty _brightness;
+        SerializedProperty _colorEvent;
+
+        static GUIContent _textHue = new GUIContent("Initial Hue");
+        static GUIContent _textSaturation = new GUIContent("Initial Saturation");
+        static GUIContent _textBrightness = new GUIContent("Initial Brightness");
+
+        void OnEnable()
+        {
+            _hue = serializedObject.FindProperty("_hue");
+            _saturation = serializedObject.FindProperty("_saturation");
+            _brightness = serializedObject.FindProperty("_brightness");
+            _colorEvent = serializedObject.FindProperty("_colorEvent");
+        }
+
+        public override void OnInspectorGUI()
+        {
+            serializedObject.Update();
+
+            EditorGUILayout.PropertyField(_hue, _textHue);
+            EditorGUILayout.PropertyField(_saturation, _textSaturation);
+            EditorGUILayout.PropertyField(_brightness, _textBrightness);
+
+            EditorGUILayout.Space();
+
+            EditorGUILayout.PropertyField(_colorEvent);
+
+            serializedObject.ApplyModifiedProperties();
+        }
+    }
+}
diff --git a/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta
new file mode 100644
index 0000000..e85925f
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 10a8b6e76ed666049beaa7a4113e5b23
+timeCreated: 1492926314
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs
new file mode 100644
index 0000000..63d68ae
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs
@@ -0,0 +1,37 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+using UnityEditor;
+
+namespace Klak.Wiring
+{
+    [CanEditMultipleObjects]
+    [CustomEditor(typeof(BangFilter))]
+    public class BangFilterEditor : Editor
+    {
+        SerializedProperty _state;
+        SerializedProperty _bangEvent;
+
+        static GUIContent _textInitialState = new GUIContent("Opened");
+
+        void OnEnable()
+        {
+            _state = serializedObject.FindProperty("_state");
+            _bangEvent = serializedObject.FindProperty("_bangEvent");
+        }
+
+        public override void OnInspectorGUI()
+        {
+            serializedObject.Update();
+
+            EditorGUILayout.PropertyField(_state, _textInitialState);
+
+            EditorGUILayout.Space();
+
+            EditorGUILayout.PropertyField(_bangEvent);
+
+            serializedObject.ApplyModifiedProperties();
+        }
+    }
+}
diff --git a/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta
new file mode 100644
index 0000000..43ac03b
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0dbd16654bd96b24d8b9906b6fd2f29f
+timeCreated: 1492926314
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs
new file mode 100644
index 0000000..98059d7
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs
@@ -0,0 +1,41 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+using UnityEditor;
+
+namespace Klak.Wiring
+{
+    [CanEditMultipleObjects]
+    [CustomEditor(typeof(RandomValue))]
+    public class RandomValueEditor : Editor
+    {
+        SerializedProperty _minimum;
+        SerializedProperty _maximum;
+        SerializedProperty _sendOnStartUp;
+        SerializedProperty _outputEvent;
+
+        void OnEnable()
+        {
+            _minimum = serializedObject.FindProperty("_minimum");
+            _maximum = serializedObject.FindProperty("_maximum");
+            _sendOnStartUp = serializedObject.FindProperty("_sendOnStartUp");
+            _outputEvent = serializedObject.FindProperty("_outputEvent");
+        }
+
+        public override void OnInspectorGUI()
+        {
+            serializedObject.Update();
+
+            EditorGUILayout.PropertyField(_minimum);
+            EditorGUILayout.PropertyField(_maximum);
+            EditorGUILayout.PropertyField(_sendOnStartUp);
+
+            EditorGUILayout.Space();
+
+            EditorGUILayout.PropertyField(_outputEvent);
+
+            serializedObject.ApplyModifiedProperties();
+        }
+    }
+}
diff --git a/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta
new file mode 100644
index 0000000..b862a79
--- /dev/null
+++ b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2c12f8afc0508fc42a737a2054ed3ea6
+timeCreated: 1492926314
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Klak/Wiring/Filter/BangFilter.cs b/Assets/Klak/Wiring/Filter/BangFilter.cs
new file mode 100644
index 0000000..6c12c0e
--- /dev/null
+++ b/Assets/Klak/Wiring/Filter/BangFilter.cs
@@ -0,0 +1,43 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+
+namespace Klak.Wiring
+{
+    [AddComponentMenu("Klak/Wiring/Filter/Bang Filter")]
+    public class BangFilter : NodeBase
+    {
+        #region Editable properties
+
+        [SerializeField]
+        bool _state;
+
+        #endregion
+
+        #region Node I/O
+
+        [Inlet]
+        public void Bang()
+        {
+            if (_state) _bangEvent.Invoke();
+        }
+
+        [Inlet]
+        public void Open()
+        {
+            _state = true;
+        }
+
+        [Inlet]
+        public void Close()
+        {
+            _state = false;
+        }
+
+        [SerializeField, Outlet]
+        VoidEvent _bangEvent = new VoidEvent();
+
+        #endregion
+    }
+}
diff --git a/Assets/Klak/Wiring/Filter/BangFilter.cs.meta b/Assets/Klak/Wiring/Filter/BangFilter.cs.meta
new file mode 100644
index 0000000..f87fe9d
--- /dev/null
+++ b/Assets/Klak/Wiring/Filter/BangFilter.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 4169d4e098bab3b4dadc3895be988f70
+timeCreated: 1492926314
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Klak/Wiring/Input/RandomValue.cs b/Assets/Klak/Wiring/Input/RandomValue.cs
new file mode 100644
index 0000000..b30b479
--- /dev/null
+++ b/Assets/Klak/Wiring/Input/RandomValue.cs
@@ -0,0 +1,48 @@
+// Klak - Creative coding library for Unity
+// https://github.com/keijiro/Klak
+
+using UnityEngine;
+
+namespace Klak.Wiring
+{
+    [AddComponentMenu("Klak/Wiring/Input/Random Value")]
+    public class RandomValue : NodeBase
+    {
+        #region Editable properties
+
+        [SerializeField]
+        float _minimum = 0;
+
+        [SerializeField]
+        float _maximum = 1;
+
+        [SerializeField]
+        bool _sendOnStartUp = false;
+
+        #endregion
+
+        #region Node I/O
+
+        [Inlet]
+        public void Bang()
+        {
+            if (!enabled) return;
+
+            _outputEvent.Invoke(Random.Range(_minimum, _maximum));
+        }
+
+        [SerializeField, Outlet]
+        FloatEvent _outputEvent = new FloatEvent();
+
+        #endregion
+
+        #region MonoBehaviour functions
+
+        void Start()
+        {
+            if (_sendOnStartUp) Bang();
+        }
+
+        #endregion
+    }
+}
diff --git a/Assets/Klak/Wiring/Input/RandomValue.cs.meta b/Assets/Klak/Wiring/Input/RandomValue.cs.meta
new file mode 100644
index 0000000..8df8bc6
--- /dev/null
+++ b/Assets/Klak/Wiring/Input/RandomValue.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f4fa215cb6f538043b9a260fea65bebc
+timeCreated: 1492926316
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: