futureaiguru / brainsimii Goto Github PK
View Code? Open in Web Editor NEWNeural Simulator for AGI research and development
Home Page: http://brainsim.org
License: MIT License
Neural Simulator for AGI research and development
Home Page: http://brainsim.org
License: MIT License
With many neurons displayed, the UI can get so slow it's unusable.
Is your feature request related to a problem? Please describe.
Please view the attached screenshot of a few neurons in a massive network with random synapses. My frustration in this is that the drawing of the synapses to other neurons is done on top of the neurons and their self-linked synapse, making it almost impossible to select the both the self-linking synapse and the neuron.
Describe the solution you'd like
Please consider drawing the elements in the following order:
Describe alternatives you've considered
Zooming in further will give me a clickable solution even now, but the above works much nicer and looks cleaner. The human mind does not need the last few pixels of the synapse link to know where it is connected to.
Is your feature request related to a problem? Please describe.
No problem
Describe the solution you'd like
Allow the Brain Simulator to perform classic learning algorithms.
Describe alternatives you've considered
Add a Neuron model which converts incoming spikes to an analog rate.
Add a perceptron neuron model
Add a Module which performs backpropagation.
Additional context
This would address the most common question about the Brain Simulator but it is a different direction.
Describe the bug
When a new network is created the All Synapses checkbox remains as it is, but the network is drawn in an indeterminate state where show synapses is concerned.
Application: Brain Simulator
Module/Network: new network
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I would expect to get a new network, with random synapses and "Show Synapses" for all neurons set to false, and the shown state according to "All Synapses" (On or off I don't care, as long as it is consistent).
Screenshots
If applicable, add screenshots to help explain your problem.
Immediately after new, when "All Synapses" was set:
After "All Synapses Cleared", some neurons still show synapses:
After "All Synapses" set again, pattern definitely changed, more busy:
Desktop (please complete the following information):
Add any other context about the problem here.
On neuron arrays >450 neurons, using the mouse wheel does not dynamically zoom the display until a complete repaint. The "target neuron" disk zooms properly but the rest of the display does not.
Describe the bug
Clicking outside a specific control on a context menu closes the context menu and loses changes
BrainSim
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The context menu should remain open
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
The only way to experiment with different Hebbian models is to modify the source code in NeuronBase.cpp
Describe the solution you'd like
These could be read from a file which could be edited with notepad.
OR, there could be a UI and the content of the models could be stored in the network file
Describe the bug
Although Move Here does not show this behaviour, Copy Here CAN crash the Brain Simulator in some cases.
Application: Brain Simulator
Module/Network: BasicNetwork
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Obviously crashing is out of the question, but I would be content if a message said WHY the copy is not allowed.
Or better yet, fix the problem so the copy does succeed.
Screenshots
Network that does copy ok:
Network that crashes the program:
Event Viewer info on the problem:
event viewer output.txt
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
Axon delays, refractory periods, random firing, etc. can be set to 0 k\or 1 which do the same thing. Higher values work as expected.
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
BRAIN SIMULATOR
Module/Network: (if your network, please attach XML file)
ALL
To Reproduce
Set always-fire neuron delay to 0, change it to 1, note no change
Expected behavior
Either 0 values should be prohibited, or a value of 1 should have the effect of 2.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
This needs to be refactored with a Memberwise close so that all a neurons' properties are copied
Describe the bug
Reloading CameraTest either through File => Open or File => Library will generate an error every time.
Application: Brain Simulator
Module/Network: CameraTest
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The CameraTest network should open without error messages, no matter what network has been opened before.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
The second time you try to open the context menu on a selection, it does not display unless there was an intervening screen refresh
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Module/Network: (if your network, please attach XML file)
To Reproduce
Steps to reproduce the behavior:
select a group of neurons
Right-click the selection to show context menu
Select reset hebbian weights (context menu closess)
Right-click again to open context menu, it does not show
Expected behavior
The context menu should display should show
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
The exception is handled and creates a non-useful user message and is related to saving Modules in the xml file. The exception message is at the end of this post.
This must be related to moving the xml save to a background thread. Perhaps there is interference with the UI trying to update the display during the save.
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulatro
Module/Network: (if your network, please attach XML file)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No Error
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
System.InvalidOperationException
HResult=0x80131509
Message=The calling thread cannot access this object because a different thread owns it.
Source=WindowsBase
StackTrace:
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.DependencyObject.GetValue(DependencyProperty dp)
at BrainSimulator.ModuleView.get_AreaNumber() in C:\Users\c_sim\Documents\Visual Studio 2015\Projects\BrainSimulator\BrainSimulator\ModuleViewMenu.cs:line 19
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write59_ModuleView(String n, String ns, ModuleView o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write60_NeuronArray(String n, String ns, NeuronArray o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write61_NeuronArray(Object o)
This exception was originally thrown at this call stack:
[External Code]
BrainSimulator.ModuleView.AreaNumber.get() in ModuleViewMenu.cs
[External Code]
If the new array is smaller, the selection could be outside the array and cause a crash.
Is your feature request related to a problem? Please describe.
The Spiking History window appears to have a scrollbar, but it is non-functional.
As a results the timeline fills the window until it is a big black mess without any detail.
Clearing the window then kills ALL history, and you have to start from scratch.
In addition there is the double close button, where the one on the window title bar only closes it, and the one in the window sets all view firing history channels to off.
Describe the solution you'd like
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
The combination of neuron engine speed 10 and firing history on hangs the engine.
Application: Brain Simulator, Neuron Engine
Module/Network: N/A
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Firing history is useless at speed 10 anyway, so it is best to deactivate it when speed is cranked up to ten, and the checkbox for it disabled if speed is already at ten.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
Changing neuron type doesn't always update context menu properly
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
BrainSim UI
'
Expected behavior
When you change the neuron type, the appropriate parameters should immediately show in the context menu.
To Reproduce:
Create a selection of unused neurons.
Right-click one and select LIF from the mode dropdown
All the neurons in the selection are changed to LIF model as expected BUT the context menu doesn't include the leak rate or axon delay.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
There is presently a version of the Neuron Engine which runs under Linux. It is in a separate project HERE: https://github.com/Moorelife/AGILE_ONE
Better academic distribution if the entire system ran under Linux as well.
This might be possible under xamarin development
Is your feature request related to a problem? Please describe.
I understand "New Network" may have predated the possibility of various types of neurons in the development of BrainSim II, but think that the "New Network" dialog should have settings to select the type of neurons that are to be created in the new network, or this change should be doable for a selection of neurons and their connected synapses.
Describe the solution you'd like
I'd like to be able to tell the new network what type of neurons and synapses it needs to use in creation of the new network.
Describe alternatives you've considered
Two solutions spring to mind:
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
The single left mouse click on a neuron apparently toggles it to "always fire" or "never fire", as can be clearly seen in example " Fractional Synapse is frequency divider". However, in example "Synapse of weight 1 causes next neuron to fire" this fails to work properly because hitting the neuron just as it is supposed to fire is extremely difficult!
Describe the solution you'd like
I'd like to be able to deactivate firing of a firing neuron to also work in the latter case, so it is possible to "reset" firing neurons which have inputs also.
Describe alternatives you've considered
Possibilities to achieve this in my opinion are:
Additional context
No additional info needed I think.
Describe the bug
When the mouse cursor is on the grey background outside a module, and not on neurons, synapses or modules, it is not shown. This makes it difficult to locate in that case, which makes selecting a set of neurons cumbersome.
It has been determined that this is a bug specific to my machine, so it is very low priority!!!
Application: Brain Simulator
Module/Network: All
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the mouse to always have a visible form, even if there is no possibility for selection or a sensible mouse action.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
These have gotten out of date with the current module layout and need correction .
Is your feature request related to a problem? Please describe.
Because of the experimental nature of the BrainSim II program, and its use of XML files to store networks, a more speedy way to open them could be via the "Open With" in the right-click menu of Windows Explorer.
Describe the solution you'd like
Obviously you wouldn't want to open all XML file with the BrainSim II program of course, so one might consider the following:
Describe alternatives you've considered
Currently I can try to open the XML file with BrainSim II, but the file is never loaded...
Additional context
Add any other context or screenshots about the feature request here.
Currently, modules are fixed-size arrays of neurons and the complete neuron array is fixed size. This is problematic for the Universal Knowledge Store and perhaps other modules whose size cannot be determined when the network is created.
A minor change will allow the neuron array to be expanded in width. A similar minor change would allow for modules which have no other modules to the right of them to be expanded in width.
Expanding in height or moving modules would require more effort but may be considered.
Describe the bug
The "No camera found" is displayed on every engine cycle
A camera selection dropdown should display
To Reproduce
See the title
Expected behavior
A clear and concise description of what you expected to happen.
Desktop (please complete the following information):
Is your feature request related to a problem? Please describe.
The way Hebbian synapse models work is not very clear
Describe the solution you'd like
Add a Hebbian demonstration network which shows how the various models compare.
Describe the bug
Setting columns if File => Properties does not work as designed and mentioned in the CameraTest network description.
Application: Brain Simulator
Module/Network: CameraTest
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the program to actually set the columns to 200.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
Setting neuron charge within context menu does not take effect until next engine cycle
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulator UI
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Neuron charge should change when requested
Is your feature request related to a problem? Please describe.
My frustration here is that the popup dialogs for neurons, synapses, network and file =>properties (and possibly more) have no clear submit/cancel point. I need to click outside the dialogs to exit them, which is counter-intuitive.
Describe the solution you'd like
Most programs in the Windows GUI have OK and Cancel buttons, which make it possible to either end a dialog with or without making changes to the settings in the dialog.
Describe alternatives you've considered
I don't really see a clear alternative, but the Microsoft development environment should have adequate functionality to implement this.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
It appears that if labels for neurons are non-unique, the Copy / Paste Here process goes wrong:
Application: Brain Simulator
Module/Network: BasicNetwork
To Reproduce
Steps to reproduce the behavior:
When the labels for the outputs of the selected network part are made unique, the error does not occur.
Expected behavior
Linkage should be looked up on ID, not label. Copy / Move Here does this correctly.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
When using the SpeechTest network, clicking output and input neurons seems to work fine, but saying "Computer, 1, 2, 3" or any other computer command only works ONCE.
Application: Brain Simulator
Module/Network: SpeechTest
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I would expect the SpeechTest network to react to any phrase starting with computer (after some seconds of silence) by saying what is dictated.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Create an installer to replace the .zip file distribution.
Describe the bug
Changing the charge of a neuron in a selection should change the charge of all the neurons in the selection (the way changing the model does) but it does not
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulator User Inte3rface
A general C# module could assemble parameters from neurons, pass them to a python script and place the python output back into neurons.
Is your feature request related to a problem? Please describe.
In experimenting with BrainSim II I have found no easy way to remove transient information like neuron charges from a network. Reset does not seem to do this, and clicking delete on a selected set of neurons removes all synapses, which is also frustrating.
Describe the solution you'd like
I would like a clean and simple way to remove all neuron charges from a selected set of neurons, either through reset or through another mechanism.
Describe alternatives you've considered
Various possible alternatives spring to mind:
Additional context
The last options seems preferable, since it avoids a possible disastrous delete of a huge network, and it clearly states what the delete will do.
Describe the bug
When testing the Babytalk network, I ran into two distinct problems, which I will enter as
Application: Brain Simulator
Module/Network: BabyTalk
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the babytalk neuron to act as the network notes say.
Screenshots
If applicable, add screenshots to help explain your problem. But it seems the initial network does not have anything connected to the SayRnd neuron
Desktop (please complete the following information):
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
Being somewhat of a power-user, it vexes me to have to perform the following action in order to move (part of) a network:
Describe the solution you'd like
These five steps could be simplified as follows:
Describe alternatives you've considered
This can be done in several ways:
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
The file is properly added to the "recent" files list but not as the default network..
Describe the bug
Even though the documentation mentions weights should be in the range 0 to 1 or -1 to 1, the field in the dialog itself allows
Application: Brain Simulator
Module/Network: N/A
To Reproduce
Steps to reproduce the behavior:
Expected behavior
If the synapse weight has a value range, no values outside the range should be able to be entered.
I know this is a nice to have that is in the range "then don't do that!", but it is a simple fix.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
Please consider the fact that users most often type new values into a field when it gets the focus, if they change it at all.
Selecting the entire contents upon gaining focus, the user can just type the new value as desired.
This is specifically useful for the weights for instance, where changing a value now requires the user to either backspace or select the contents before entering the actual new value. The combobox can be made such that it is also possible to fill in the value manually.
Application: Brain Simulator
Module/Network: N/A
To Reproduce
Steps to reproduce the behavior:
Expected behavior
This can be solved in general for all text fields, by simply selecting the contents of the field.
For the weight field, it would be nice to make it an editable dropdown combobox, rather than having the values in the dialog itself.
Screenshots
If applicable, add screenshots to help explain your problem.
Old dialog:
New dialog:
Desktop (please complete the following information):
Add any other context about the problem here.
To add a bit of standardization
Needs complete revamp along with the ability to change the size of the neuron array
Is your feature request related to a problem? Please describe.
Ctrl-Z works fine to undo changes you inadvertently made, but usually programs also implement Ctrl-Y as redo.
Doing so would make it easier to wind back multiple steps, since if you overshoot with Ctrl-Z, you can correct it with Ctrl-Y.
Describe the solution you'd like
Solution above seems ample description
Describe alternatives you've considered
No real alternatives.
Additional context
Add any other context or screenshots about the feature request here.
This software is a great effort to bring AGI to all of us. Thanks.
I'm trying to use binary files then a get this error:
System.Windows.Markup.XamlParseException: The type initializer for 'BrainSimulator.MainWindow' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'NeuronEngineWrapper.dll' or one of its dependencies. The specified module could not be found. at BrainSimulator.MainWindow..cctor() --- End of inner exception stack trace --- at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at BrainSimulator.App.Main()
How can I use the software?
Describe the bug
There is an off-by-one bug in the neuron engine or the brain simulator, where the firing from one column to the next is concerned.
Application: Brain Simulator, Neuron Engine
Module/Network: ZIP file of XML file added, because XML is not allowed by Github.
off_by_one.zip
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect even the last column to properly be reached.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
The new 2021-04-15 master no longer deletes synapses when asked to do so with the Delete option in the Synapse Dialog.
Application: Brain Simulator
Module/Network: N/A
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the Delete to work and remove the synapse, like it did in the past.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
Initially I once got the male voice saying "Mommy" and Sallie repeating it.
However, later retries failed to produce sound, and I could not get back to a talking network, even after the steps below
Application: Brain Simulator
Module/Network: BabyTalk
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
Describe the bug
After performing "reset hebbian weights", ctrl-z and undo commands do not restore weights
Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain simulator UI
Module/Network: (if your network, please attach XML file)
All
Is your feature request related to a problem? Please describe.
The network notes of for instance BasicNeurons and HebbianSynapses is too wordy and imprecise, it would be simpler to indicate them with numbers.
Describe the solution you'd like
Rather than just a text string naming the various examples, start the text string with a number, so you can refer to it by that number. This makes the network notes far more readable.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
See the attached screenshot where I've made the changes to two of the examples in BasicNeurons. The network notes might then be written as
This network shows the basic Integrate and Fire (IF) and Leaky Integrate and Fire (LIF) neuron models.
Example #1: shows how neurons connected with weight 1 can construct loops and delay lines. Each cycle in the neuron engine will push the firing charge one neuron further.
Example #2: the three neurons form a frequency divider. The left-most is set to always fire. It is connected to the center neuron with a synapse of weight 0.25. You can see the color change as it accumulates charge. When it reaches its threshold, it will fire and cause the right-most neuron to fire once every fourth cycle.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
Brain Simulator does not see any servers in new network dialog.
Application: Brain Simulator, Neuron Server
Module/Network: N/A
To Reproduce
Steps to reproduce the behavior:
Expected behavior
If a neuron server is running on a local network, it should be visible in the use servers list when 'use servers' is checked.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.